diff options
| -rw-r--r-- | libpiano/main.c | 20 | 
1 files changed, 19 insertions, 1 deletions
| diff --git a/libpiano/main.c b/libpiano/main.c index 8ec19bb..17bef4b 100644 --- a/libpiano/main.c +++ b/libpiano/main.c @@ -384,7 +384,25 @@ PianoReturn_t PianoDeleteStation (PianoHandle_t *ph, PianoStation_t *station) {  	PianoHttpPost (ph->curlHandle, url, requestStr, &retStr);  	ret = PianoXmlParseSimple (retStr); -	/* FIXME would be our job to delete station from global station list... */ +	if (ret == PIANO_RET_OK) { +		/* delete station from local station list */ +		PianoStation_t *curStation = ph->stations, *lastStation = NULL; +		while (curStation != NULL) { +			if (curStation == station) { +				printf ("deleting station\n"); +				if (lastStation != NULL) { +					lastStation->next = curStation->next; +				} else { +					/* first station in list */ +					ph->stations = curStation->next; +				} +				PianoDestroyStation (curStation); +				free (curStation); +			} +			lastStation = curStation; +			curStation = curStation->next; +		} +	}  	free (requestStr);  	free (retStr); | 
