Exemplo n.º 1
0
void mime_magic( char *filename, char *key ) {
	struct obj_mime *tuple = NULL;
	magic_t magic = NULL;
	const char *mime = NULL;

	if( ! file_isreg( filename) ) {
		return;
	}

	if( (magic = magic_open( MAGIC_ERROR|MAGIC_MIME)) == NULL ) {
		return;
	}
  
	if( magic_load( magic,NULL) != 0 ) {
		magic_close( magic );
		return;
	}

	if( (mime = magic_file( magic, filename)) == NULL ) {
		magic_close( magic );
		return;
	}
	
	/* Cache mime type in memory */
	mutex_block( _main->mime->mutex );
	tuple = mime_add( key, mime );
	mutex_unblock( _main->mime->mutex );
	
	/* Clear handle */
	magic_close( magic );

	info( NULL, 0, "New MIME: \"%s\" -> \"%s\"", tuple->key, tuple->val );
}
Exemplo n.º 2
0
/* add mime line */
int mime_add_line(MIME_MAP *mime_map, char *p, char *end)
{
    int n = 0;
    char *s = NULL;

    if(mime_map && p && end)
    {
        while(p < end)
        {
            while(p < end && (*p == 0x20 || *p == '\t' || *p == '\r' || *p == '\n') ) ++p;
            s = p;
            while(p < end && (*p != ',' && *p != ';' && *p != 0x20 && *p != '\t'))++p;
            if((n = (p - s)) > 0)
            {
                mime_add(mime_map, s, n);
            }
            ++p;
        }
        return 0;
    }
    return -1;
}
Exemplo n.º 3
0
void mime_load( void ) {
	mime_add( "___", "application/octet-stream; charset=binary" );
	mime_add( "7z", "application/x-7z-compressed; charset=binary" );
	mime_add( "asf", "video/x-ms-asf; charset=binary" );
	mime_add( "asx", "video/x-ms-asf; charset=binary" );
	mime_add( "avi", "video/x-msvideo; charset=binary" );
	mime_add( "bz2", "application/x-bzip2; charset=binary" );
	mime_add( "css", "text/css" );
	mime_add( "deb", "application/x-debian-package; charset=binary" );
	mime_add( "divx", "video/x-msvideo; charset=binary" );
	mime_add( "dsc", "text/plain; charset=utf-8" );
	mime_add( "gif", "image/gif; charset=binary" );
	mime_add( "gpg", "application/pgp-signature; charset=utf-8" );
	mime_add( "gz", "application/x-gzip; charset=binary" );
	mime_add( "html", "text/html; charset=utf-8" );
	mime_add( "ico", "image/x-ico; charset=binary" );
	mime_add( "iso", "application/x-iso9660-image; charset=binary" );
	mime_add( "js", "application/x-javascript" );
	mime_add( "jpg", "image/jpeg; charset=binary" );
	mime_add( "jpeg", "image/jpeg; charset=binary" );
	mime_add( "m3u", "text/plain; charset=utf-8" );
	mime_add( "m4v", "video/mp4; charset=binary" );
	mime_add( "mkv", "video/x-matroska; charset=binary" );
	mime_add( "mov", "video/quicktime; charset=binary" );
	mime_add( "mp3", "audio/mpeg; charset=binary" );
	mime_add( "mp4", "video/mp4; charset=binary" );
	mime_add( "mpeg", "video/mpeg; charset=binary" );
	mime_add( "mpg", "video/mpeg; charset=binary" );
	mime_add( "nfo", "text/plain; charset=utf-8" );
	mime_add( "ogg", "application/ogg; charset=binary" );
	mime_add( "ogm", "application/ogg; charset=binary" );
	mime_add( "pdf", "application/pdf; charset=binary" );
	mime_add( "pl", "text/x-perl; charset=utf-8" );
	mime_add( "png", "image/png; charset=binary" );
	mime_add( "rar", "application/x-rar; charset=binary" );
	mime_add( "rss", "application/rss+xml; charset=utf-8" );
	mime_add( "txt", "text/plain; charset=utf-8" );
	mime_add( "wmv", "video/x-ms-asf; charset=binary" );
	mime_add( "woff", "application/font-woff" );
	mime_add( "xml", "application/xml; charset=utf-8" );
	mime_add( "zip", "application/zip; charset=binary" );
}