Changeset 4873:98d17d4deeec in roaraudio
- Timestamp:
- 04/26/11 11:03:46 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
include/libroar/error.h
r4872 r4873 71 71 int roar_err_parsemsg(struct roar_message * mes, struct roar_error_frame * frame); 72 72 73 #define roar_error (*roar_errno2()) 73 74 int * roar_errno2(void); 74 75 -
libroar/basic.c
r4806 r4873 63 63 int workarounds_store; 64 64 65 roar_err no = ROAR_ERROR_UNKNOWN;65 roar_err_set(ROAR_ERROR_UNKNOWN); 66 66 67 67 if ( timeout != 0 ) { 68 roar_err no = ROAR_ERROR_INVAL;68 roar_err_set(ROAR_ERROR_INVAL); 69 69 return -1; 70 70 } … … 231 231 232 232 if ( fh == -1 ) 233 roar_err no = ROAR_ERROR_CONNREFUSED;233 roar_err_set(ROAR_ERROR_CONNREFUSED); 234 234 235 235 ROAR_DBG("roar_connect_raw(*) = %i", fh); … … 246 246 247 247 if ( con == NULL ) { 248 roar_err no = ROAR_ERROR_INVAL;249 return -1; 250 } 251 252 roar_err no = ROAR_ERROR_UNKNOWN;248 roar_err_set(ROAR_ERROR_FAULT); 249 return -1; 250 } 251 252 roar_err_set(ROAR_ERROR_UNKNOWN); 253 253 fh = roar_connect_raw2(server, flags, timeout); 254 254 … … 262 262 263 263 if ( con == NULL || fh == -1 ) { 264 roar_err no = ROAR_ERROR_INVAL;264 roar_err_set(ROAR_ERROR_INVAL); 265 265 return -1; 266 266 } … … 278 278 con->flags |= ROAR_CON_FLAGS_VIO; 279 279 280 roar_err no = ROAR_ERROR_NONE;280 roar_err_set(ROAR_ERROR_NONE); 281 281 return 0; 282 282 } … … 337 337 roar_connect_fh(con, -2); 338 338 339 roar_err no = ROAR_ERROR_NONE;339 roar_err_set(ROAR_ERROR_NONE); 340 340 341 341 return 0; … … 384 384 int max_len; 385 385 386 roar_err no = ROAR_ERROR_UNKNOWN;386 roar_err_set(ROAR_ERROR_UNKNOWN); 387 387 388 388 ROAR_DBG("roar_identify(*): try to identify myself..."); -
libroar/ctl.c
r4740 r4873 194 194 m.data[0] = id; 195 195 196 roar_err no = ROAR_ERROR_UNKNOWN;196 roar_err_set(ROAR_ERROR_UNKNOWN); 197 197 198 198 if ( roar_req(con, &m, NULL) == -1 ) { 199 roar_err no = ROAR_ERROR_PROTO;199 roar_err_set(ROAR_ERROR_PROTO); 200 200 return -1; 201 201 } -
libroar/ltm.c
r4708 r4873 66 66 67 67 if ( mt == 0 || streams == NULL || slen == 0 || mes == NULL || buf == NULL ) { 68 roar_err no = ROAR_ERROR_INVAL;68 roar_err_set(ROAR_ERROR_INVAL); 69 69 return -1; 70 70 } … … 81 81 break; 82 82 default: 83 roar_err no = ROAR_ERROR_NOTSUP;83 roar_err_set(ROAR_ERROR_NOTSUP); 84 84 return -1; 85 85 break; … … 95 95 96 96 if ( mes->datalen > LIBROAR_BUFFER_MSGDATA ) { 97 roar_err no = ROAR_ERROR_NOTSUP;97 roar_err_set(ROAR_ERROR_NOTSUP); 98 98 return -1; 99 99 } -
libroar/notify.c
r4708 r4873 60 60 static struct roar_notify_core * _libroar_notify_core = NULL; 61 61 62 #define _CKRCORE(ret) if ( core == NULL ) { if ( _libroar_notify_core == NULL ) { roar_err no = ROAR_ERROR_INVAL; return (ret); } else { core = _libroar_notify_core; } }62 #define _CKRCORE(ret) if ( core == NULL ) { if ( _libroar_notify_core == NULL ) { roar_err_set(ROAR_ERROR_INVAL); return (ret); } else { core = _libroar_notify_core; } } 63 63 #define _CKICORE() _CKRCORE(-1) 64 64 … … 97 97 break; 98 98 default: 99 roar_err no = ROAR_ERROR_INVAL;99 roar_err_set(ROAR_ERROR_INVAL); 100 100 return NULL; 101 101 break; … … 172 172 int roar_notify_core_new_global(ssize_t lists) { 173 173 if ( _libroar_notify_core != NULL ) { 174 roar_err no = ROAR_ERROR_INVAL;174 roar_err_set(ROAR_ERROR_INVAL); 175 175 return -1; 176 176 } … … 202 202 if ( event == NULL || cb == NULL ) { 203 203 ROAR_DBG("roar_notify_core_subscribe(core=%p, event=%p, cb=%p, userdata=%p) = NULL // errno = EINVAL", core, event, cb, userdata); 204 roar_err no = ROAR_ERROR_INVAL;204 roar_err_set(ROAR_ERROR_FAULT); 205 205 return NULL; 206 206 } … … 246 246 247 247 if ( subscriber == NULL ) { 248 roar_err no = ROAR_ERROR_INVAL;248 roar_err_set(ROAR_ERROR_FAULT); 249 249 return -1; 250 250 } … … 275 275 276 276 if ( event == NULL ) { 277 roar_err no = ROAR_ERROR_INVAL;277 roar_err_set(ROAR_ERROR_FAULT); 278 278 return -1; 279 279 } -
libroar/proto.c
r4708 r4873 65 65 char * bufptr; 66 66 67 roar_err no = ROAR_ERROR_UNKNOWN;67 roar_err_set(ROAR_ERROR_UNKNOWN); 68 68 69 69 ROAR_DBG("roar_send_message(*): try to send an request..."); … … 87 87 buf[2] = (unsigned char) mes->cmd; 88 88 // ... 89 roar_err no = ROAR_ERROR_NOTSUP;89 roar_err_set(ROAR_ERROR_NOTSUP); 90 90 return -1; 91 91 break; … … 107 107 break; 108 108 default: 109 roar_err no = ROAR_ERROR_NOTSUP;109 roar_err_set(ROAR_ERROR_NOTSUP); 110 110 return -1; 111 111 } 112 112 113 113 if ( roar_vio_write(vio, buf, headerlen) != headerlen ) { 114 roar_errno = ROAR_ERROR_PIPE;115 114 return -1; 116 115 } … … 118 117 if ( mes->datalen != 0 ) { 119 118 if ( roar_vio_write(vio, data == NULL ? mes->data : data, mes->datalen) != mes->datalen ) { 120 roar_errno = ROAR_ERROR_PIPE;121 119 return -1; 122 120 } … … 125 123 if ( crclen != 0 ) { 126 124 if ( roar_vio_write(vio, crc, crclen) != crclen ) { 127 roar_errno = ROAR_ERROR_PIPE; 128 return -1; 129 } 130 } 131 132 roar_errno = ROAR_ERROR_NONE; 125 return -1; 126 } 127 } 128 129 roar_err_clear(); 133 130 134 131 ROAR_DBG("roar_send_message(*) = 0"); … … 154 151 char * bufptr; 155 152 156 roar_err no = ROAR_ERROR_UNKNOWN;153 roar_err_set(ROAR_ERROR_UNKNOWN); 157 154 158 155 ROAR_DBG("roar_recv_message(*): try to get a response form the server..."); … … 167 164 168 165 if ( roar_vio_read(vio, buf, _ROAR_MESS_BUF_LEN_V0) != _ROAR_MESS_BUF_LEN_V0 ) { 169 roar_err no = ROAR_ERROR_PROTO;166 roar_err_set(ROAR_ERROR_PROTO); 170 167 return -1; 171 168 } … … 195 192 break; 196 193 default: 197 roar_err no = ROAR_ERROR_PROTO;194 roar_err_set(ROAR_ERROR_PROTO); 198 195 return -1; 199 196 break; … … 205 202 needlen = headerlen - _ROAR_MESS_BUF_LEN_V0; 206 203 if ( roar_vio_read(vio, buf+_ROAR_MESS_BUF_LEN_V0, needlen) != (ssize_t)needlen ) { 207 roar_err no = ROAR_ERROR_PROTO;204 roar_err_set(ROAR_ERROR_PROTO); 208 205 return -1; 209 206 } … … 235 232 ROAR_DBG("roar_recv_message(*): no data in this pkg"); 236 233 ROAR_DBG("roar_recv_message(*) = 0"); 237 roar_err no = ROAR_ERROR_NONE;234 roar_err_clear(); 238 235 return 0; 239 236 } … … 243 240 ROAR_DBG("roar_recv_message(*): Got data!"); 244 241 ROAR_DBG("roar_recv_message(*) = 0"); 245 roar_err no = ROAR_ERROR_NONE;242 roar_err_clear(); 246 243 return 0; 247 244 } 248 245 249 roar_errno = ROAR_ERROR_PIPE;250 246 return -1; 251 247 } else { 252 248 if ( data == NULL ) { 253 roar_err no = ROAR_ERROR_MSGSIZE;249 roar_err_set(ROAR_ERROR_MSGSIZE); 254 250 return -1; 255 251 } 256 252 257 253 if ( (*data = malloc(mes->datalen)) == NULL ) { 258 roar_err no = ROAR_ERROR_NOMEM;254 roar_err_set(ROAR_ERROR_NOMEM); 259 255 return -1; 260 256 } 261 257 262 258 if ( mes->datalen == 0 ) { 263 roar_err no = ROAR_ERROR_NONE;259 roar_err_clear(); 264 260 return 0; 265 261 } … … 268 264 ROAR_DBG("roar_recv_message(*): Got data!"); 269 265 ROAR_DBG("roar_recv_message(*) = 0"); 270 roar_err no = ROAR_ERROR_NONE;266 roar_err_clear(); 271 267 return 0; 272 268 } 273 269 274 roar_err no = ROAR_ERROR_PIPE;270 roar_err_set(ROAR_ERROR_PIPE); 275 271 return -1; 276 272 } -
libroar/vio.c
r4831 r4873 46 46 int roar_vio_init_calls (struct roar_vio_calls * calls) { 47 47 #ifdef _CAN_OPERATE 48 if ( calls == NULL ) 49 return -1; 48 if ( calls == NULL ) { 49 roar_err_set(ROAR_ERROR_FAULT); 50 return -1; 51 } 50 52 51 53 memset((void*)calls, 0, sizeof(struct roar_vio_calls)); … … 72 74 73 75 int roar_vio_set_inst (struct roar_vio_calls * vio, void * inst) { 74 if ( vio == NULL ) 75 return -1; 76 if ( vio == NULL ) { 77 roar_err_set(ROAR_ERROR_FAULT); 78 return -1; 79 } 76 80 77 81 vio->inst = inst; … … 85 89 86 90 int roar_vio_get_fh (struct roar_vio_calls * vio) { 87 if ( vio == NULL ) 88 return -1; 91 if ( vio == NULL ) { 92 roar_err_set(ROAR_ERROR_FAULT); 93 return -1; 94 } 89 95 90 96 return ((int)(ROAR_INSTINT)vio->inst) - 1; … … 93 99 94 100 ssize_t roar_vio_read (struct roar_vio_calls * vio, void *buf, size_t count) { 101 ssize_t ret; 102 95 103 ROAR_DBG("roar_vio_read(vio=%p, buf=%p, count=%u) = ?", vio, buf, (unsigned int)count); 96 104 97 if ( vio == NULL ) 98 return -1; 99 100 if ( vio->read == NULL ) 101 return -1; 102 103 return vio->read(vio, buf, count); 105 if ( vio == NULL ) { 106 roar_err_set(ROAR_ERROR_FAULT); 107 return -1; 108 } 109 110 if ( vio->read == NULL ) { 111 roar_err_set(ROAR_ERROR_NOSYS); 112 return -1; 113 } 114 115 roar_err_clear_all(); 116 ret = vio->read(vio, buf, count); 117 roar_err_update(); 118 119 return ret; 104 120 } 105 121 106 122 ssize_t roar_vio_write(struct roar_vio_calls * vio, void *buf, size_t count) { 123 ssize_t ret; 124 107 125 ROAR_DBG("roar_vio_write(vio=%p, buf=%p, count=%u) = ?", vio, buf, (unsigned int)count); 108 126 109 if ( vio == NULL ) 110 return -1; 111 112 if ( vio->write == NULL ) 113 return -1; 114 115 return vio->write(vio, buf, count); 127 if ( vio == NULL ) { 128 roar_err_set(ROAR_ERROR_FAULT); 129 return -1; 130 } 131 132 if ( vio->write == NULL ) { 133 roar_err_set(ROAR_ERROR_NOSYS); 134 return -1; 135 } 136 137 roar_err_clear_all(); 138 ret = vio->write(vio, buf, count); 139 roar_err_update(); 140 141 return ret; 116 142 } 117 143 118 144 off_t roar_vio_lseek(struct roar_vio_calls * vio, off_t offset, int whence) { 145 off_t ret; 146 119 147 ROAR_DBG("roar_vio_lseek(vio=%p, offset=%u, whence=%i) = ?", vio, (unsigned int)offset, whence); 120 148 121 if ( vio == NULL ) 122 return -1; 123 124 if ( vio->lseek == NULL ) 125 return -1; 126 127 return vio->lseek(vio, offset, whence); 149 if ( vio == NULL ) { 150 roar_err_set(ROAR_ERROR_FAULT); 151 return -1; 152 } 153 154 if ( vio->lseek == NULL ) { 155 roar_err_set(ROAR_ERROR_NOSYS); 156 return -1; 157 } 158 159 roar_err_clear_all(); 160 ret = vio->lseek(vio, offset, whence); 161 roar_err_update(); 162 163 return ret; 128 164 } 129 165 130 166 int roar_vio_nonblock(struct roar_vio_calls * vio, int state) { 167 int ret; 168 131 169 ROAR_DBG("roar_vio_nonblock(vio=%p, state=%i) = ?", vio, state); 132 170 133 if ( vio == NULL ) 134 return -1; 135 136 if ( vio->nonblock == NULL ) 137 return -1; 138 139 return vio->nonblock(vio, state); 171 if ( vio == NULL ) { 172 roar_err_set(ROAR_ERROR_FAULT); 173 return -1; 174 } 175 176 if ( vio->nonblock == NULL ) { 177 roar_err_set(ROAR_ERROR_NOSYS); 178 return -1; 179 } 180 181 roar_err_clear_all(); 182 ret = vio->nonblock(vio, state); 183 roar_err_update(); 184 185 return ret; 140 186 } 141 187 142 188 int roar_vio_sync (struct roar_vio_calls * vio) { 189 int ret; 190 143 191 ROAR_DBG("roar_vio_sync(vio=%p) = ?", vio); 144 192 145 if ( vio == NULL ) 146 return -1; 147 148 if ( vio->sync == NULL ) 149 return -1; 150 151 return vio->sync(vio); 193 if ( vio == NULL ) { 194 roar_err_set(ROAR_ERROR_FAULT); 195 return -1; 196 } 197 198 if ( vio->sync == NULL ) { 199 roar_err_set(ROAR_ERROR_NOSYS); 200 return -1; 201 } 202 203 roar_err_clear_all(); 204 ret = vio->sync(vio); 205 roar_err_update(); 206 207 return ret; 152 208 } 153 209 154 210 int roar_vio_ctl (struct roar_vio_calls * vio, int cmd, void * data) { 211 int ret; 212 155 213 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=%i, data=%p) = ?", vio, cmd, data); 156 214 157 if ( vio == NULL ) 158 return -1; 215 if ( vio == NULL ) { 216 roar_err_set(ROAR_ERROR_FAULT); 217 return -1; 218 } 159 219 160 220 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p): vio->ctl=%p", vio, cmd, data, vio->ctl); … … 166 226 ROAR_ERR("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p): Please recompile your program to fix this. (No additional steps are required beside that.)", vio, cmd, data); 167 227 ROAR_DBG("roar_vio_ctl(vio=%p, cmd=0x%.8x, data=%p) = -1", vio, cmd, data); 228 roar_err_set(ROAR_ERROR_BADRQC); 168 229 return -1; 169 230 break; 170 231 } 171 232 172 if ( vio->ctl == NULL ) 173 return -1; 174 175 return vio->ctl(vio, cmd, data); 233 if ( vio->ctl == NULL ) { 234 roar_err_set(ROAR_ERROR_NOSYS); 235 return -1; 236 } 237 238 roar_err_clear_all(); 239 ret = vio->ctl(vio, cmd, data); 240 roar_err_update(); 241 242 return ret; 176 243 } 177 244 178 245 int roar_vio_close (struct roar_vio_calls * vio) { 246 int ret; 247 179 248 ROAR_DBG("roar_vio_close(vio=%p) = ?", vio); 180 249 181 if ( vio == NULL ) 182 return -1; 183 184 if ( vio->close == NULL ) 185 return -1; 186 187 return vio->close(vio); 250 if ( vio == NULL ) { 251 roar_err_set(ROAR_ERROR_FAULT); 252 return -1; 253 } 254 255 if ( vio->close == NULL ) { 256 roar_err_set(ROAR_ERROR_NOSYS); 257 return -1; 258 } 259 260 roar_err_clear_all(); 261 ret = vio->close(vio); 262 roar_err_update(); 263 264 return ret; 188 265 } 189 266 190 267 // specal commands: 191 268 int roar_vio_accept (struct roar_vio_calls * calls, struct roar_vio_calls * dst) { 192 if (dst == NULL || calls == NULL) 193 return -1; 269 if (dst == NULL || calls == NULL) { 270 roar_err_set(ROAR_ERROR_FAULT); 271 return -1; 272 } 194 273 195 274 return roar_vio_ctl(dst, ROAR_VIO_CTL_ACCEPT, calls); … … 205 284 int fh; 206 285 207 if ( calls == NULL || filename == NULL ) 208 return -1; 286 roar_debug_warn_obsolete("roar_vio_open_file", "roar_vio_open_dstr", NULL); 287 288 if ( calls == NULL || filename == NULL ) { 289 roar_err_set(ROAR_ERROR_FAULT); 290 return -1; 291 } 209 292 210 293 #ifdef ROAR_TARGET_WIN32 … … 212 295 #endif 213 296 214 if ( (fh = open(filename, flags, mode)) == -1 ) 215 return -1; 297 roar_err_clear_all(); 298 if ( (fh = open(filename, flags, mode)) == -1 ) { 299 roar_err_update(); 300 return -1; 301 } 216 302 217 303 if ( roar_vio_open_fh(calls, fh) == -1 ) { 218 304 close(fh); 219 return -1; 220 } 221 305 roar_err_update(); 306 return -1; 307 } 308 309 roar_err_update(); 222 310 return 0; 223 311 #else … … 584 672 } 585 673 674 roar_err_set(ROAR_ERROR_BADRQC); 586 675 return -1; 587 676 } … … 708 797 return -1; 709 798 710 errno = 0;799 roar_err_clear_all(); 711 800 712 801 while ( (r = roar_vio_read((struct roar_vio_calls *) vio->inst, buf, count)) > 0 ) { … … 734 823 return -1; 735 824 736 errno = 0;825 roar_err_clear_all(); 737 826 738 827 while ( (r = roar_vio_write((struct roar_vio_calls *) vio->inst, buf, count)) > 0 ) { -
libroar/vs.c
r4850 r4873 49 49 #define FLAG_DIR_OUT 0x2000 50 50 51 #define _initerr() do { errno = 0; roar_err_clear(); } while(0)52 #define _seterr(x) do { if ( error != NULL ) *error = (x); ROAR_DBG("roar_vs_*(*): *error=%s(%i)", roar_vs_strerr((x)), (x)); } while(0)53 #define _seterrre() do { _seterr(roar_err no); } while(0)54 #define _seterrse() do { roar_err_from_errno(); _seterr(roar_err no); } while(0)51 #define _initerr() roar_err_clear_all() 52 #define _seterr(x) do { if ( error != NULL ) *error = (x); roar_err_set((x)); ROAR_DBG("roar_vs_*(*): *error=%s(%i)", roar_vs_strerr((x)), (x)); } while(0) 53 #define _seterrre() do { _seterr(roar_error); } while(0) 54 #define _seterrse() do { roar_err_from_errno(); _seterr(roar_error); } while(0) 55 55 #define _ckvss(ret) do { if ( vss == NULL ) { _seterr(ROAR_ERROR_INVAL); return (ret); } } while(0) 56 56 … … 405 405 if ( ret == -1 ) { 406 406 #ifdef EAGAIN 407 if ( errno == EAGAIN ) 408 return 0; 409 #endif 410 411 #ifdef EWOULDBLOCK 412 if ( errno == EWOULDBLOCK ) 407 if ( roar_error == ROAR_ERROR_AGAIN ) 413 408 return 0; 414 409 #endif
Note: See TracChangeset
for help on using the changeset viewer.