content_len = 0;
content = tr_loadFile( filename, &content_len );
- if( content )
+ if( errno )
+ {
+ char * tmp = tr_strdup_printf( "%s (%s)", filename, tr_strerror( errno ) );
+ send_simple_response( req, HTTP_NOTFOUND, tmp );
+ tr_free( tmp );
+ }
+ else
{
struct evbuffer * out;
const time_t now = time( NULL );
tr_releaseBuffer( out );
tr_free( content );
}
- else
- {
- char * tmp = tr_strdup_printf( "%s (%s)", filename, tr_strerror( errno ) );
- send_simple_response( req, HTTP_NOTFOUND, tmp );
- tr_free( tmp );
- }
}
}
"<p style=\"padding-left: 20pt;\">This requirement has been added to make "
"<a href=\"http://en.wikipedia.org/wiki/Cross-site_request_forgery\">CSRF</a>"
" attacks more difficult.</p>",
- TR_RPC_SESSION_ID_HEADER, sessionId,
- TR_RPC_SESSION_ID_HEADER );
+ TR_RPC_SESSION_ID_HEADER, sessionId );
evhttp_add_header( req->output_headers, TR_RPC_SESSION_ID_HEADER, sessionId );
send_simple_response( req, 409, tmp );
tr_free( tmp );
}
void
-tr_msg( const char * file,
- int line,
- int level,
- const char * name,
- const char * fmt,
- ... )
+tr_msg( const char * file, int line,
+ int level, const char * name,
+ const char * fmt, ... )
{
+ const int err = errno; /* message logging shouldn't affect errno */
FILE * fp;
tr_msgInit( );
tr_lockLock( messageLock );
}
tr_lockUnlock( messageLock );
+ errno = err;
}
/***