Changeset 1130:f09016f2d64f in roaraudio
- Timestamp:
- 01/17/09 18:08:32 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roarclients/roarmonhttp.c
r1027 r1130 136 136 int parse_http (void) { 137 137 char buf[1024]; 138 char * qs , *str;138 char * qs = buf, *str; 139 139 ssize_t len; 140 int dir = ROAR_DIR_MONITOR; 140 141 141 142 if ( (len = read(ROAR_STDIN, buf, 1023)) == -1 ) … … 144 145 buf[len] = 0; 145 146 146 if ( strncmp(buf, "GET /", 5) ) 147 return -1; 148 149 qs = buf+5; 147 if ( strncmp(buf, "GET /", 5) ) { 148 if ( strncmp(buf, "SOURCE /", 8) ) { 149 return -1; 150 } else { 151 dir = ROAR_DIR_PLAY; 152 qs += 3; 153 } 154 } 155 156 qs += 5; 150 157 151 158 if ( (str = strstr(qs, " ")) == NULL ) … … 168 175 setenv("QUERY_STRING", qs, 1); 169 176 170 return 0;177 return dir; 171 178 } 172 179 … … 181 188 char * c, * k, * v; 182 189 char * sp0, * sp1; 190 int dir = ROAR_DIR_MONITOR; 183 191 184 192 alarm(0); // reset alarm timers from httpd … … 186 194 if ( argc > 1 ) 187 195 if ( ! strcmp(argv[1], "--inetd") ) 188 if ( parse_http() == -1 )196 if ( (dir = parse_http()) == -1 ) 189 197 return 1; 190 198 … … 212 220 213 221 214 if ( (fh = roar_simple_ monitor(rate, channels, bits, codec, server, "roarmon")) == -1 ) {222 if ( (fh = roar_simple_stream(rate, channels, bits, codec, server, dir, "roarmonhttp")) == -1 ) { 215 223 // fprintf(stderr, "Error: can not start monitoring\n"); 216 224 return 1; … … 225 233 */ 226 234 227 stream(ROAR_STDOUT, fh); 235 switch (dir) { 236 case ROAR_DIR_PLAY: 237 stream(fh, ROAR_STDIN); 238 break; 239 case ROAR_DIR_MONITOR: 240 stream(ROAR_STDOUT, fh); 241 break; 242 } 228 243 229 244 roar_simple_close(fh);
Note: See TracChangeset
for help on using the changeset viewer.