Changeset 4705:109ee6f17831 in roaraudio for plugins/roard
- Timestamp:
- 01/06/11 02:37:55 (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/roard/protocol-gopher.c
r4704 r4705 71 71 } 72 72 73 static int send_menu (int client, struct roar_gopher_menu * menu ) {73 static int send_menu (int client, struct roar_gopher_menu * menu, struct roar_vio_calls * vio) { 74 74 struct roar_buffer * buf; 75 75 struct roar_gopher_menu_item * item; … … 78 78 void * data; 79 79 char * chardata; 80 c har * host;80 const char * host; 81 81 unsigned int port; 82 struct roar_sockname sockaddr; 83 84 if ( roar_vio_ctl(vio, ROAR_VIO_CTL_GET_SOCKNAME, &sockaddr) == -1 ) { 85 memset(&sockaddr, 0, sizeof(sockaddr)); 86 } 82 87 83 88 for (i = 0; i < menu->items_len; i++) { 84 89 item = &(menu->items[i]); 85 if ( roar_buffer_new_data(&buf, len, &data) == -1 ) 86 return -1; 90 if ( roar_buffer_new_data(&buf, len, &data) == -1 ) { 91 if ( sockaddr.addr != NULL ) 92 roar_mm_free(sockaddr.addr); 93 return -1; 94 } 87 95 88 96 chardata = data; … … 93 101 break; 94 102 default: 95 host = item->host ;96 port = item->port ;103 host = item->host == NULL ? sockaddr.addr : item->host; 104 port = item->port == 0 ? sockaddr.port : item->port; 97 105 snprintf(data, len-1, "%c%s\t%s\t%s\t%u\r\n", item->type, item->name, item->selector, host, port); 98 106 break; … … 106 114 } 107 115 108 return 0; 109 } 110 111 static int send_text (int client, const char * text) { 116 if ( sockaddr.addr != NULL ) 117 roar_mm_free(sockaddr.addr); 118 119 return 0; 120 } 121 122 static int send_text (int client, const char * text, struct roar_vio_calls * vio) { 112 123 struct roar_buffer * buf; 113 124 void * data; … … 199 210 switch (c->type) { 200 211 case _DIR: 201 funcret = send_menu(client, &(c->menu) );212 funcret = send_menu(client, &(c->menu), vio); 202 213 break; 203 214 case _FILE: 204 funcret = send_text(client, c->text );215 funcret = send_text(client, c->text, vio); 205 216 break; 206 217 default:
Note: See TracChangeset
for help on using the changeset viewer.