]> cgit.babelmonkeys.de Git - mpdbot.git/blobdiff - src/PEPThread.m
Support MPD_HOST/MPD_PORT environment variables
[mpdbot.git] / src / PEPThread.m
index e857ae368311a28b6473fa83dd3bba77adbb90bd..cd13eb382ca57452cf979da8426fc777f83c4131 100644 (file)
                @try {
                        [sock release];
                        sock = [[OFTCPSocket alloc] init];
-                       [sock connectToHost: @"localhost"
-                                      port: 6600];
+                       [sock connectToHost: mpd_host
+                                      port: mpd_port];
                        return;
                } @catch (id e) {
-                       of_log(@"Connection failed, retrying in %" PRIi64
-                                       " seconds", pause);
+                       [of_stderr writeFormat: @"Connection failed, retrying"
+                               @" in %" PRIi64 @" seconds\n", pause];
                        [OFThread sleepForTimeInterval: pause];
                        if (pause < 120)
                                pause *= 2;
        }
 }
 
-- (OFMutableDictionary*)MPD_responseFromSocket: (OFTCPSocket*)sock
+- (OFMutableDictionary*)MPD_responseFromSocket: (OFTCPSocket*)sock_
 {
        OFString *answer;
        OFMutableDictionary *response = [OFMutableDictionary dictionary];
-       while ((answer = [sock readLine]) && ![answer hasPrefix: @"OK"]) {
+       while ((answer = [sock_ readLine]) && ![answer hasPrefix: @"OK"]) {
                size_t index;
                index = [answer indexOfFirstOccurrenceOfString: @":"];
                if (index == OF_INVALID_INDEX)
 
 - (id)main
 {
+       OFDictionary *environment = [OFApplication environment];
+       OFString *mpd_port_string;
+       mpd_host = [environment objectForKey: @"MPD_HOST"];
+       if (mpd_host == nil)
+               mpd_host = @"localhost";
+       mpd_port_string = [environment objectForKey: @"MPD_PORT"];
+       if (mpd_port_string && [mpd_port_string decimalValue] <= UINT16_MAX)
+               mpd_port = (uint16_t) [mpd_port_string decimalValue];
+       else
+               mpd_port = 6600;
        [self MPD_connect];
        [self MPD_responseFromSocket: sock];
        while (1) {