本文整理汇总了C++中cupsFileOpen函数的典型用法代码示例。如果您正苦于以下问题:C++ cupsFileOpen函数的具体用法?C++ cupsFileOpen怎么用?C++ cupsFileOpen使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cupsFileOpen函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: httpSaveCredentials
int /* O - -1 on error, 0 on success */
httpSaveCredentials(
const char *path, /* I - Keychain/PKCS#12 path */
cups_array_t *credentials, /* I - Credentials */
const char *common_name) /* I - Common name for credentials */
{
cups_file_t *fp; /* Certificate file */
char filename[1024], /* filename.crt */
nfilename[1024],/* filename.crt.N */
temp[1024], /* Temporary string */
line[256]; /* Base64-encoded line */
const unsigned char *ptr; /* Pointer into certificate */
ssize_t remaining; /* Bytes left */
http_credential_t *cred; /* Current credential */
if (!credentials || !common_name)
return (-1);
if (!path)
path = http_gnutls_default_path(temp, sizeof(temp));
if (!path)
return (-1);
http_gnutls_make_path(filename, sizeof(filename), path, common_name, "crt");
snprintf(nfilename, sizeof(nfilename), "%s.N", filename);
if ((fp = cupsFileOpen(nfilename, "w")) == NULL)
return (-1);
fchmod(cupsFileNumber(fp), 0600);
for (cred = (http_credential_t *)cupsArrayFirst(credentials);
cred;
cred = (http_credential_t *)cupsArrayNext(credentials))
{
cupsFilePuts(fp, "-----BEGIN CERTIFICATE-----\n");
for (ptr = cred->data, remaining = (ssize_t)cred->datalen; remaining > 0; remaining -= 45, ptr += 45)
{
httpEncode64_2(line, sizeof(line), (char *)ptr, remaining > 45 ? 45 : remaining);
cupsFilePrintf(fp, "%s\n", line);
}
cupsFilePuts(fp, "-----END CERTIFICATE-----\n");
}
cupsFileClose(fp);
return (rename(nfilename, filename));
}
开发者ID:carriercomm,项目名称:osx-2,代码行数:49,代码来源:tls-gnutls.c
示例2: cupsdInitCerts
void
cupsdInitCerts(void)
{
#ifndef HAVE_ARC4RANDOM
cups_file_t *fp; /* /dev/random file */
/*
* Initialize the random number generator using the random device or
* the current time, as available...
*/
if ((fp = cupsFileOpen("/dev/urandom", "rb")) == NULL)
{
struct timeval tod; /* Time of day */
/*
* Get the time in usecs and use it as the initial seed...
*/
gettimeofday(&tod, NULL);
CUPS_SRAND((unsigned)(tod.tv_sec + tod.tv_usec));
}
else
{
unsigned seed; /* Seed for random number generator */
/*
* Read 4 random characters from the random device and use
* them as the seed...
*/
seed = cupsFileGetChar(fp);
seed = (seed << 8) | cupsFileGetChar(fp);
seed = (seed << 8) | cupsFileGetChar(fp);
CUPS_SRAND((seed << 8) | cupsFileGetChar(fp));
cupsFileClose(fp);
}
#endif /* !HAVE_ARC4RANDOM */
/*
* Create a root certificate and return...
*/
if (!RunUser)
cupsdAddCert(0, "root", cupsdDefaultAuthType());
}
开发者ID:jelmer,项目名称:cups,代码行数:49,代码来源:cert.c
示例3: save_messages
int /* O - 1 on success, 0 on error */
save_messages(cups_array_t *cat, /* I - Message catalog */
const char *filename) /* I - File to save to */
{
_cups_message_t *m; /* Current message */
cups_file_t *fp; /* File pointer */
/*
* Open the message catalog...
*/
if ((fp = cupsFileOpen(filename, "w")) == NULL)
return (0);
/*
* Save the messages to a file...
*/
for (m = (_cups_message_t *)cupsArrayFirst(cat);
m;
m = (_cups_message_t *)cupsArrayNext(cat))
{
if (cupsFilePuts(fp, "msgid \"") < 0)
break;
if (!write_string(fp, m->id))
break;
if (cupsFilePuts(fp, "\"\nmsgstr \"") < 0)
break;
if (m->str)
{
if (!write_string(fp, m->str))
break;
}
if (cupsFilePuts(fp, "\"\n") < 0)
break;
}
cupsFileClose(fp);
return (!m);
}
开发者ID:alfintatorkace,项目名称:osx-10.9-opensource,代码行数:46,代码来源:translate.c
示例4: get_hostconfig
static int /* O - 1 for YES or AUTOMATIC, 0 for NO */
get_hostconfig(const char *name) /* I - Name of service */
{
cups_file_t *fp; /* Hostconfig file */
char line[1024], /* Line from file */
*ptr; /* Pointer to value */
int state = 1; /* State of service */
/*
* Try opening the /etc/hostconfig file; if we can't open it, assume that
* the service is enabled/auto.
*/
if ((fp = cupsFileOpen("/etc/hostconfig", "r")) != NULL)
{
/*
* Read lines from the file until we find the service...
*/
while (cupsFileGets(fp, line, sizeof(line)))
{
if (line[0] == '#' || (ptr = strchr(line, '=')) == NULL)
continue;
*ptr++ = '\0';
if (!_cups_strcasecmp(line, name))
{
/*
* Found the service, see if it is set to "-NO-"...
*/
if (!_cups_strncasecmp(ptr, "-NO-", 4))
state = 0;
break;
}
}
cupsFileClose(fp);
}
return (state);
}
开发者ID:AndychenCL,项目名称:cups,代码行数:44,代码来源:dirsvc.c
示例5: write_info
static void
write_info(const char *path, /* I - File to write */
const char *revision) /* I - Subversion revision number */
{
cups_file_t *fp; /* File */
if ((fp = cupsFileOpen(path, "w")) == NULL)
{
fprintf(stderr, "makedocset: Unable to create %s: %s\n", path,
strerror(errno));
exit(1);
}
cupsFilePrintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" "
"\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
"<plist version=\"1.0\">\n"
"<dict>\n"
"\t<key>CFBundleIdentifier</key>\n"
"\t<string>org.cups.docset</string>\n"
"\t<key>CFBundleName</key>\n"
"\t<string>CUPS Documentation</string>\n"
"\t<key>CFBundleVersion</key>\n"
"\t<string>%d.%d.%s</string>\n"
"\t<key>CFBundleShortVersionString</key>\n"
"\t<string>%d.%d.%d</string>\n"
"\t<key>DocSetFeedName</key>\n"
"\t<string>cups.org</string>\n"
"\t<key>DocSetFeedURL</key>\n"
"\t<string>http://www.cups.org/org.cups.docset.atom"
"</string>\n"
"\t<key>DocSetPublisherIdentifier</key>\n"
"\t<string>org.cups</string>\n"
"\t<key>DocSetPublisherName</key>\n"
"\t<string>CUPS</string>\n"
"</dict>\n"
"</plist>\n",
CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, revision,
CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR, CUPS_VERSION_PATCH);
cupsFileClose(fp);
}
开发者ID:jianglei12138,项目名称:cups,代码行数:43,代码来源:makedocset.c
示例6: _cupsSNMPDefaultCommunity
const char * /* O - Default community name */
_cupsSNMPDefaultCommunity(void)
{
cups_file_t *fp; /* snmp.conf file */
char line[1024], /* Line from file */
*value; /* Value from file */
int linenum; /* Line number in file */
_cups_globals_t *cg = _cupsGlobals(); /* Global data */
DEBUG_puts("4_cupsSNMPDefaultCommunity()");
if (!cg->snmp_community[0])
{
strlcpy(cg->snmp_community, "public", sizeof(cg->snmp_community));
snprintf(line, sizeof(line), "%s/snmp.conf", cg->cups_serverroot);
if ((fp = cupsFileOpen(line, "r")) != NULL)
{
linenum = 0;
while (cupsFileGetConf(fp, line, sizeof(line), &value, &linenum))
if (!_cups_strcasecmp(line, "Community") && value)
{
strlcpy(cg->snmp_community, value, sizeof(cg->snmp_community));
break;
}
cupsFileClose(fp);
}
}
DEBUG_printf(("5_cupsSNMPDefaultCommunity: Returning \"%s\"",
cg->snmp_community));
return (cg->snmp_community);
}
开发者ID:alfintatorkace,项目名称:osx-10.9-opensource,代码行数:36,代码来源:snmp.c
示例7: check_file
static int /* O - 0 on success, 1 on failure */
check_file(const char *filename) /* I - File to read from */
{
int i; /* Looping var */
cups_file_t *fp; /* File */
char line[1024]; /* Line from file */
int ch; /* Current character */
size_t bytes; /* Length of line */
int status; /* Status of test */
int linenum; /* Line number */
int binary; /* File contains binary data? */
float version; /* DSC version */
int lbrt[4]; /* Bounding box */
char page_label[256]; /* Page label string */
int page_number; /* Page number */
int last_page_number; /* Last page number seen */
int level; /* Embedded document level */
int saw_bounding_box, /* %%BoundingBox seen? */
saw_pages, /* %%Pages seen? */
saw_end_comments, /* %%EndComments seen? */
saw_begin_prolog, /* %%BeginProlog seen? */
saw_end_prolog, /* %%EndProlog seen? */
saw_begin_setup, /* %%BeginSetup seen? */
saw_end_setup, /* %%EndSetup seen? */
saw_page, /* %%Page seen? */
saw_trailer, /* %%Trailer seen? */
saw_long_line; /* Saw long lines? */
/*
* Open the file...
*/
if (!strcmp(filename, "(stdin)"))
fp = cupsFileStdin();
else
fp = cupsFileOpen(filename, "r");
if (!fp)
{
perror(filename);
return (1);
}
/*
* Scan the file...
*/
binary = 0;
last_page_number = 0;
level = 0;
linenum = 0;
saw_begin_prolog = 0;
saw_begin_setup = 0;
saw_bounding_box = 0;
saw_end_comments = 0;
saw_end_prolog = 0;
saw_end_setup = 0;
saw_long_line = 0;
saw_page = 0;
saw_pages = 0;
saw_trailer = 0;
status = 0;
version = 0.0f;
/* TODO: Fixme */
printf("%s: ", filename);
fflush(stdout);
while ((bytes = cupsFileGetLine(fp, line, sizeof(line))) > 0)
{
linenum ++;
if (bytes > 255)
{
if (!saw_long_line)
{
if (!status)
_cupsLangPuts(stdout, _("FAIL"));
status ++;
_cupsLangPrintf(stdout,
_(" Line %d is longer than 255 characters (%d).\n"
" REF: Page 25, Line Length"),
linenum, (int)bytes);
}
saw_long_line ++;
}
if (linenum == 1)
{
if (strncmp(line, "%!PS-Adobe-", 11))
{
if (!status)
_cupsLangPuts(stdout, _("FAIL"));
_cupsLangPuts(stdout,
_(" Missing %!PS-Adobe-3.0 on first line.\n"
" REF: Page 17, 3.1 Conforming Documents"));
//.........这里部分代码省略.........
开发者ID:thangap,项目名称:tizen-release,代码行数:101,代码来源:cupstestdsc.c
示例8: _cupsMessageLoad
cups_array_t * /* O - New message array */
_cupsMessageLoad(const char *filename, /* I - Message catalog to load */
int unquote) /* I - Unescape \foo in strings? */
{
cups_file_t *fp; /* Message file */
cups_array_t *a; /* Message array */
_cups_message_t *m; /* Current message */
char s[4096], /* String buffer */
*ptr, /* Pointer into buffer */
*temp; /* New string */
size_t length, /* Length of combined strings */
ptrlen; /* Length of string */
DEBUG_printf(("4_cupsMessageLoad(filename=\"%s\")", filename));
/*
* Create an array to hold the messages...
*/
if ((a = _cupsMessageNew(NULL)) == NULL)
{
DEBUG_puts("5_cupsMessageLoad: Unable to allocate array!");
return (NULL);
}
/*
* Open the message catalog file...
*/
if ((fp = cupsFileOpen(filename, "r")) == NULL)
{
DEBUG_printf(("5_cupsMessageLoad: Unable to open file: %s",
strerror(errno)));
return (a);
}
/*
* Read messages from the catalog file until EOF...
*
* The format is the GNU gettext .po format, which is fairly simple:
*
* msgid "some text"
* msgstr "localized text"
*
* The ID and localized text can span multiple lines using the form:
*
* msgid ""
* "some long text"
* msgstr ""
* "localized text spanning "
* "multiple lines"
*/
m = NULL;
while (cupsFileGets(fp, s, sizeof(s)) != NULL)
{
/*
* Skip blank and comment lines...
*/
if (s[0] == '#' || !s[0])
continue;
/*
* Strip the trailing quote...
*/
if ((ptr = strrchr(s, '\"')) == NULL)
continue;
*ptr = '\0';
/*
* Find start of value...
*/
if ((ptr = strchr(s, '\"')) == NULL)
continue;
ptr ++;
/*
* Unquote the text...
*/
if (unquote)
cups_unquote(ptr, ptr);
/*
* Create or add to a message...
*/
if (!strncmp(s, "msgid", 5))
{
/*
* Add previous message as needed...
*/
//.........这里部分代码省略.........
开发者ID:jianglei12138,项目名称:cups,代码行数:101,代码来源:language.c
示例9: main
//.........这里部分代码省略.........
sigaddset(&action.sa_mask, SIGTERM);
sigaddset(&action.sa_mask, SIGCHLD);
action.sa_handler = sigchld_handler;
sigaction(SIGCHLD, &action, NULL);
sigemptyset(&action.sa_mask);
sigaddset(&action.sa_mask, SIGHUP);
action.sa_handler = sighup_handler;
sigaction(SIGHUP, &action, NULL);
sigemptyset(&action.sa_mask);
action.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &action, NULL);
sigemptyset(&action.sa_mask);
sigaddset(&action.sa_mask, SIGTERM);
sigaddset(&action.sa_mask, SIGCHLD);
action.sa_handler = sigterm_handler;
sigaction(SIGTERM, &action, NULL);
#else
signal(SIGCLD, sigchld_handler); /* No, SIGCLD isn't a typo... */
signal(SIGHUP, sighup_handler);
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, sigterm_handler);
#endif /* HAVE_SIGSET */
#ifdef __sgi
/*
* Try to create a fake lpsched lock file if one is not already there.
* Some Adobe applications need it under IRIX in order to enable
* printing...
*/
if ((fp = cupsFileOpen("/var/spool/lp/SCHEDLOCK", "w")) == NULL)
{
syslog(LOG_LPR, "Unable to create fake lpsched lock file "
"\"/var/spool/lp/SCHEDLOCK\"\' - %s!",
strerror(errno));
}
else
{
fchmod(cupsFileNumber(fp), 0644);
fchown(cupsFileNumber(fp), User, Group);
cupsFileClose(fp);
}
#endif /* __sgi */
/*
* Initialize authentication certificates...
*/
cupsdInitCerts();
/*
* If we are running in the background, signal the parent process that
* we are up and running...
*/
if (!fg || run_as_child)
{
/*
* Send a signal to the parent process, but only if the parent is
* not PID 1 (init). This avoids accidentally shutting down the
* system on OpenBSD if you CTRL-C the server before it is up...
*/
开发者ID:ChErePOdaViLka,项目名称:cups,代码行数:67,代码来源:main.c
示例10: update_lpd
static void
update_lpd(int onoff) /* - 1 = turn on, 0 = turn off */
{
if (!LPDConfigFile)
return;
#ifdef __APPLE__
/*
* Allow /etc/hostconfig CUPS_LPD service setting to override cupsd.conf
* setting for backwards-compatibility.
*/
if (onoff && !get_hostconfig("CUPS_LPD"))
onoff = 0;
#endif /* __APPLE__ */
if (!strncmp(LPDConfigFile, "xinetd:///", 10))
{
/*
* Enable/disable LPD via the xinetd.d config file for cups-lpd...
*/
char newfile[1024]; /* New cups-lpd.N file */
cups_file_t *ofp, /* Original file pointer */
*nfp; /* New file pointer */
char line[1024]; /* Line from file */
snprintf(newfile, sizeof(newfile), "%s.N", LPDConfigFile + 9);
if ((ofp = cupsFileOpen(LPDConfigFile + 9, "r")) == NULL)
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to open \"%s\" - %s",
LPDConfigFile + 9, strerror(errno));
return;
}
if ((nfp = cupsFileOpen(newfile, "w")) == NULL)
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create \"%s\" - %s",
newfile, strerror(errno));
cupsFileClose(ofp);
return;
}
/*
* Copy all of the lines from the cups-lpd file...
*/
while (cupsFileGets(ofp, line, sizeof(line)))
{
if (line[0] == '{')
{
cupsFilePrintf(nfp, "%s\n", line);
snprintf(line, sizeof(line), "\tdisable = %s",
onoff ? "no" : "yes");
}
else if (!strstr(line, "disable ="))
cupsFilePrintf(nfp, "%s\n", line);
}
cupsFileClose(nfp);
cupsFileClose(ofp);
rename(newfile, LPDConfigFile + 9);
}
#ifdef __APPLE__
else if (!strncmp(LPDConfigFile, "launchd:///", 11))
{
/*
* Enable/disable LPD via the launchctl command...
*/
char *argv[5], /* Arguments for command */
*envp[MAX_ENV]; /* Environment for command */
int pid; /* Process ID */
cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));
argv[0] = (char *)"launchctl";
argv[1] = (char *)(onoff ? "load" : "unload");
argv[2] = (char *)"-w";
argv[3] = LPDConfigFile + 10;
argv[4] = NULL;
cupsdStartProcess("/bin/launchctl", argv, envp, -1, -1, -1, -1, -1, 1,
NULL, NULL, &pid);
}
#endif /* __APPLE__ */
else
cupsdLogMessage(CUPSD_LOG_INFO, "Unknown LPDConfigFile scheme!");
}
开发者ID:AndychenCL,项目名称:cups,代码行数:91,代码来源:dirsvc.c
示例11: update_smb
static void
update_smb(int onoff) /* I - 1 = turn on, 0 = turn off */
{
if (!SMBConfigFile)
return;
if (!strncmp(SMBConfigFile, "samba:///", 9))
{
/*
* Enable/disable SMB via the specified smb.conf config file...
*/
char newfile[1024]; /* New smb.conf.N file */
cups_file_t *ofp, /* Original file pointer */
*nfp; /* New file pointer */
char line[1024]; /* Line from file */
int in_printers; /* In [printers] section? */
snprintf(newfile, sizeof(newfile), "%s.N", SMBConfigFile + 8);
if ((ofp = cupsFileOpen(SMBConfigFile + 8, "r")) == NULL)
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to open \"%s\" - %s",
SMBConfigFile + 8, strerror(errno));
return;
}
if ((nfp = cupsFileOpen(newfile, "w")) == NULL)
{
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create \"%s\" - %s",
newfile, strerror(errno));
cupsFileClose(ofp);
return;
}
/*
* Copy all of the lines from the smb.conf file...
*/
in_printers = 0;
while (cupsFileGets(ofp, line, sizeof(line)))
{
if (in_printers && strstr(line, "printable ="))
snprintf(line, sizeof(line), " printable = %s",
onoff ? "yes" : "no");
cupsFilePrintf(nfp, "%s\n", line);
if (line[0] == '[')
in_printers = !strcmp(line, "[printers]");
}
cupsFileClose(nfp);
cupsFileClose(ofp);
rename(newfile, SMBConfigFile + 8);
}
else
cupsdLogMessage(CUPSD_LOG_INFO, "Unknown SMBConfigFile scheme!");
}
开发者ID:AndychenCL,项目名称:cups,代码行数:61,代码来源:dirsvc.c
示例12: main
//.........这里部分代码省略.........
i ++;
if (helpfile && !strcmp(helpfile, n->filename))
{
help_node_t *nn; /* Pointer to sub-node */
cupsArraySave(hi->sorted);
for (nn = (help_node_t *)cupsArrayFirst(hi->sorted);
nn;
nn = (help_node_t *)cupsArrayNext(hi->sorted))
if (nn->anchor && !strcmp(helpfile, nn->filename))
{
/*
* Add a link for this node...
*/
snprintf(line, sizeof(line), "#%s", nn->anchor);
cgiSetArray("BMLINK", i, line);
cgiSetArray("BMTEXT", i, nn->text);
cgiSetArray("BMINDENT", i, "2");
i ++;
}
cupsArrayRestore(hi->sorted);
}
}
/*
* Show the search and bookmark content...
*/
if (!helpfile || !printable)
cgiCopyTemplateLang("help-header.tmpl");
else
cgiCopyTemplateLang("help-printable.tmpl");
/*
* If we are viewing a file, copy it in now...
*/
if (helpfile)
{
if ((fp = cupsFileOpen(filename, "r")) != NULL)
{
int inbody; /* Are we inside the body? */
inbody = 0;
while (cupsFileGets(fp, line, sizeof(line)))
{
if (inbody)
{
if (!_cups_strncasecmp(line, "</BODY>", 7))
break;
printf("%s\n", line);
}
else if (!_cups_strncasecmp(line, "<BODY", 5))
inbody = 1;
}
cupsFileClose(fp);
}
else
{
perror(filename);
cgiSetVariable("ERROR", cgiText(_("Unable to open help file.")));
cgiCopyTemplateLang("error.tmpl");
}
}
/*
* Send a standard trailer...
*/
if (!printable)
{
cgiCopyTemplateLang("help-trailer.tmpl");
cgiEndHTML();
}
else
puts("</BODY>\n</HTML>");
/*
* Delete the index...
*/
helpDeleteIndex(hi);
/*
* Return with no errors...
*/
return (0);
}
开发者ID:AnotherView,项目名称:cups,代码行数:101,代码来源:help.c
示例13: helpSaveIndex
int /* O - 0 on success, -1 on error */
helpSaveIndex(help_index_t *hi, /* I - Index */
const char *hifile) /* I - Index filename */
{
cups_file_t *fp; /* Index file */
help_node_t *node; /* Current node */
help_word_t *word; /* Current word */
DEBUG_printf(("helpSaveIndex(hi=%p, hifile=\"%s\")", hi, hifile));
/*
* Try creating a new index file...
*/
if ((fp = cupsFileOpen(hifile, "w9")) == NULL)
return (-1);
/*
* Lock the file while we write it...
*/
cupsFileLock(fp, 1);
cupsFilePuts(fp, "HELPV2\n");
for (node = (help_node_t *)cupsArrayFirst(hi->nodes);
node;
node = (help_node_t *)cupsArrayNext(hi->nodes))
{
/*
* Write the current node with/without the anchor...
*/
if (node->anchor)
{
if (cupsFilePrintf(fp, "%s#%s " CUPS_LLFMT " " CUPS_LLFMT " \"%s\"\n",
node->filename, node->anchor,
CUPS_LLCAST node->offset, CUPS_LLCAST node->length,
node->text) < 0)
break;
}
else
{
if (cupsFilePrintf(fp, "%s %d " CUPS_LLFMT " " CUPS_LLFMT " \"%s\" \"%s\"\n",
node->filename, (int)node->mtime,
CUPS_LLCAST node->offset, CUPS_LLCAST node->length,
node->section ? node->section : "", node->text) < 0)
break;
}
/*
* Then write the words associated with the node...
*/
for (word = (help_word_t *)cupsArrayFirst(node->words);
word;
word = (help_word_t *)cupsArrayNext(node->words))
if (cupsFilePrintf(fp, " %d %s\n", word->count, word->text) < 0)
break;
}
cupsFileFlush(fp);
if (cupsFileClose(fp) < 0)
return (-1);
else if (node)
return (-1);
else
return (0);
}
开发者ID:josephgbr,项目名称:cups-pt_BR,代码行数:71,代码来源:help-index.c
示例14: mime_load_convs
static void
mime_load_convs(
mime_t *mime, /* I - MIME database */
const char *filename, /* I - Convs file to load */
const char *filterpath, /* I - Path for filters */
cups_array_t *filtercache) /* I - Filter program cache */
{
cups_file_t *fp; /* Convs file */
char line[1024], /* Input line from file */
*lineptr, /* Current position in line */
super[MIME_MAX_SUPER], /* Super-type name */
type[MIME_MAX_TYPE], /* Type name */
*temp, /* Temporary pointer */
*filter; /* Filter program */
mime_type_t *temptype, /* MIME type looping var */
*dsttype; /* Destination MIME type */
int cost; /* Cost of filter */
DEBUG_printf(("2mime_load_convs(mime=%p, filename=\"%s\", filterpath=\"%s\", "
"filtercache=%p)", mime, filename, filterpath, filtercache));
/*
* First try to open the file...
*/
if ((fp = cupsFileOpen(filename, "r")) == NULL)
{
DEBUG_printf(("3mime_load_convs: Unable to open \"%s\": %s", filename,
strerror(errno)));
_mimeError(mime, "Unable to open \"%s\": %s", filename, strerror(errno));
return;
}
/*
* Then read each line from the file, skipping any comments in the file...
*/
while (cupsFileGets(fp, line, sizeof(line)) != NULL)
{
/*
* Skip blank lines and lines starting with a #...
*/
if (!line[0] || line[0] == '#')
continue;
/*
* Strip trailing whitespace...
*/
for (lineptr = line + strlen(line) - 1;
lineptr >= line && isspace(*lineptr & 255);
lineptr --)
*lineptr = '\0';
/*
* Extract the destination super-type and type names from the middle of
* the line.
*/
lineptr = line;
while (*lineptr != ' ' && *lineptr != '\t' && *lineptr != '\0')
lineptr ++;
while (*lineptr == ' ' || *lineptr == '\t')
lineptr ++;
temp = super;
while (*lineptr != '/' && *lineptr != '\n' && *lineptr != '\0' &&
(temp - super + 1) < MIME_MAX_SUPER)
*temp++ = tolower(*lineptr++ & 255);
*temp = '\0';
if (*lineptr != '/')
continue;
lineptr ++;
temp = type;
while (*lineptr != ' ' && *lineptr != '\t' && *lineptr != '\n' &&
*lineptr != '\0' && (temp - type + 1) < MIME_MAX_TYPE)
*temp++ = tolower(*lineptr++ & 255);
*temp = '\0';
if (*lineptr == '\0' || *lineptr == '\n')
continue;
if ((dsttype = mimeType(mime, super, type)) == NULL)
{
DEBUG_printf(("3mime_load_convs: Destination type %s/%s not found.",
super, type));
continue;
}
/*
* Then get the cost and filter program...
//.........这里部分代码省略.........
开发者ID:alfintatorkace,项目名称:osx-10.9-opensource,代码行数:101,代码来源:mime.c
示例15: random_tests
static int /* O - Status */
random_tests(void)
{
int status, /* Status of tests */
pass, /* Current pass */
count, /* Number of records read */
record, /* Current record */
num_records; /* Number of records */
ssize_t pos, /* Position in file */
expected; /* Expected position in file */
cups_file_t *fp; /* File */
char buffer[512]; /* Data buffer */
/*
* Run 4 passes, each time appending to a data file and then reopening the
* file for reading to validate random records in the file.
*/
for (status = 0, pass = 0; pass < 4; pass ++)
{
/*
* cupsFileOpen(append)
*/
printf("\ncupsFileOpen(append %d): ", pass);
if ((fp = cupsFileOpen("testfile.dat", "a")) == NULL)
{
printf("FAIL (%s)\n", strerror(errno));
status ++;
break;
}
else
puts("PASS");
/*
* cupsFileTell()
*/
expected = 256 * sizeof(buffer) * pass;
fputs("cupsFileTell(): ", stdout);
if ((pos = cupsFileTell(fp)) != expected)
{
printf("FAIL (" CUPS_LLFMT " instead of " CUPS_LLFMT ")\n",
CUPS_LLCAST pos, CUPS_LLCAST expected);
status ++;
break;
}
else
puts("PASS");
/*
* cupsFileWrite()
*/
fputs("cupsFileWrite(256 512-byte records): ", stdout);
for (record = 0; record < 256; record ++)
{
memset(buffer, record, sizeof(buffer));
if (cupsFileWrite(fp, buffer, sizeof(buffer)) < sizeof(buffer))
break;
}
if (record < 256)
{
printf("FAIL (%d: %s)\n", record, strerror(errno));
status ++;
break;
}
else
puts("PASS");
/*
* cupsFileTell()
*/
expected += 256 * sizeof(buffer);
fputs("cupsFileTell(): ", stdout);
if ((pos = cupsFileTell(fp)) != expected)
{
printf("FAIL (" CUPS_LLFMT " instead of " CUPS_LLFMT ")\n",
CUPS_LLCAST pos, CUPS_LLCAST expected);
status ++;
break;
}
else
puts("PASS");
cupsFileClose(fp);
/*
* cupsFileOpen(read)
*/
printf("\ncupsFileOpen(read %d): ", pass);
if ((fp = cupsFileOpen("testfile.dat", "r")) == NULL)
//.........这里部分代码省略.........
开发者ID:AnotherView,项目名称:cups,代码行数:101,代码来源:testfile.c
示例16: main
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
int status; /* Exit status */
char filename[1024]; /* Filename buffer */
cups_file_t *fp; /* File pointer */
#ifndef WIN32
int fds[2]; /* Open file descriptors */
cups_file_t *fdfile; /* File opened with cupsFileOpenFd() */
#endif /* !WIN32 */
int count; /* Number of lines in file */
if (argc == 1)
{
/*
* Do uncompressed file tests...
*/
status = read_write_tests(0);
#ifdef HAVE_LIBZ
/*
* Do compressed file tests...
*/
putchar('\n');
status += read_write_tests(1);
#endif /* HAVE_LIBZ */
/*
* Do uncompressed random I/O tests...
*/
status += random_tests();
#ifndef WIN32
/*
* Test fdopen and close without reading...
*/
pipe(fds);
close(fds[1]);
fputs("\ncupsFileOpenFd(fd, \"r\"): ", stdout);
fflush(stdout);
if ((fdfile = cupsFileOpenFd(fds[0], "r")) == NULL)
{
puts("FAIL");
status ++;
}
else
{
/*
* Able to open file, now close without reading. If we don't return
* before the alarm fires, that is a failure and we will crash on the
* alarm signal...
*/
puts("PASS");
fputs("cupsFileClose(no read): ", stdout);
fflush(stdout);
alarm(5);
cupsFileClose(fdfile);
alarm(0);
puts("PASS");
}
#endif /* !WIN32 */
/*
* Count lines in psglyphs, rewind, then count again.
*/
fputs("\ncupsFileOpen(\"../data/media.defs\", \"r\"): ", stdout);
if ((fp = cupsFileOpen("../data/media.defs", "r")) == NULL)
{
puts("FAIL");
status ++;
}
else
{
puts("PASS");
fputs("cupsFileGets: ", stdout);
if ((count = count_lines(fp)) != 208)
{
printf("FAIL (got %d lines, expected 208)\n", count);
status ++;
}
else
{
puts("PASS");
fputs("cupsFileRewind: ", stdout);
//.........这里部分代码省略.........
开发者ID:AnotherView,项目名称:cups,代码行数:101,代码来源:testfile.c
示例17: cupsdCheckLogFile
int /* O - 1 if log file open */
cupsdCheckLogFile(cups_file_t **lf, /* IO - Log file */
const char *logname) /* I - Log filename */
{
char backname[1024], /* Backup log filename */
filename[1024], /* Formatted log filename */
*ptr; /* Pointer into filename */
const char *logptr; /* Pointer into log filename */
/*
* See if we have a log file to check...
*/
if (!lf || !logname || !logname[0])
return (1);
/*
* Handle logging to stderr...
*/
if (!strcmp(logname, "stderr"))
{
*lf = LogStderr;
return (1);
}
/*
* Format the filename as needed...
*/
if (!*lf ||
(strncmp(logname, "/dev/", 5) && cupsFileTell(*lf) > MaxLogSize &&
MaxLogSize > 0))
{
/*
* Handle format strings...
*/
filename[sizeof(filename) - 1] = '\0';
if (logname[0] != '/')
{
strlcpy(filename, ServerRoot, sizeof(filename));
strlcat(filename, "/", sizeof(filename));
}
else
filename[0] = '\0';
for (logptr = logname, ptr = filename + strlen(filename);
*logptr && ptr < (filename + sizeof(filename) - 1);
logptr ++)
if (*logptr == '%')
{
/*
* Format spec...
*/
logptr ++;
if (*logptr == 's')
{
/*
* Insert the server name...
*/
strlcpy(ptr, ServerName, sizeof(filename) - (size_t)(ptr - filename));
ptr += strlen(ptr);
}
else
{
/*
* Otherwise just insert the character...
*/
*ptr++ = *logptr;
}
}
else
*ptr++ = *logptr;
*ptr = '\0';
}
/*
* See if the log file is open...
*/
if (!*lf)
{
/*
* Nope, open the log file...
*/
if ((*lf = cupsFileOpen(filename, "a")) == NULL)
{
/*
* If the file is in CUPS_LOGDIR then try to create a missing directory...
*/
if (!strncmp(filename, CUPS_LOGDIR, strlen(CUPS_LOGDIR)))
//.........这里部分代码省略.........
开发者ID:apple,项目名称:cups,代码行数:101,代码来源:log.c
示例18: print_file
static void
print_file(http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
cups_dinfo_t *dinfo, /* I - Destination information */
const char *filename, /* I - File to print */
int num_options, /* I - Number of options */
cups_option_t *options) /* I - Options */
{
cups_file_t *fp; /* File to print */
int job_id; /* Job ID */
ipp_status_t status; /* Submission status */
const char *title; /* Title of job */
char buffer[32768]; /* File buffer */
ssize_t bytes; /* Bytes read/to write */
if ((fp = cupsFileOpen(filename, "r")) == NULL)
{
printf("Unable to open \"%s\": %s\n", filename, strerror(errno));
return;
}
if ((title = strrchr(filename, '/')) != NULL)
title ++;
else
title = filename;
if ((status = cupsCreateDestJob(http, dest, dinfo, &job_id, title, num_options, options)) > IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED)
{
printf("Unable to create job: %s\n", cupsLastErrorString());
cupsFileClose(fp);
return;
}
printf("Created job ID: %d\n", job_id);
if (cupsStartDestDocument(http, dest, dinfo, job_id, title, CUPS_FORMAT_AUTO, 0, NULL, 1) != HTTP_STATUS_CONTINUE)
{
printf("Unable to send document: %s\n", cupsLastErrorString());
cupsFileClose(fp);
return;
}
while ((bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
{
if (cupsWriteRequestData(http, buffer, (size_t)bytes) != HTTP_STATUS_CONTINUE)
{
printf("Unable to write document data: %s\n", cupsLastErrorString());
break;
}
}
cupsFileClose(fp);
if ((status = cupsFinishDestDocument(http, dest, dinfo)) > IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED)
{
printf("Unable to send document: %s\n", cupsLastErrorString());
return;
}
puts("Job queued.");
}
开发者ID:lanceit,项目名称:cups,代码行数:62,代码来源:testdest.c
示例19: get_printer
//.........这里部分代码省略.........
}
else
{
/*
* Get values from the response...
*/
if (accepting)
{
if ((attr = ippFindAttribute(response, "printer-is-accepting-jobs",
IPP_TAG_BOOLEAN)) == NULL)
syslog(LOG_ERR, "No printer-is-accepting-jobs attribute found in "
"response from server!");
else
*accepting = attr->values[0].boolean;
}
if (shared)
{
if ((attr = ippFindAttribute(response, "printer-is-shared",
IPP_TAG_BOOLEAN)) == NULL)
{
syslog(LOG_ERR, "No printer-is-shared attribute found in "
"response from server!");
*shared = 1;
}
else
*shared = attr->values[0].boolean;
}
if (state)
{
if ((attr = ippFindAttribute(response, "printer-state",
IPP_TAG_ENUM)) == NULL)
syslog(LOG_ERR, "No printer-state attribute found in "
"response from server!");
else
*state = (ipp_pstate_t)attr->values[0].integer;
}
ippDelete(response);
}
/*
* Next look for the printer in the lpoptions file...
*/
num_options = 0;
if (options && shared && accepting)
{
if ((cups_serverroot = getenv("CUPS_SERVERROOT")) == NULL)
cups_serverroot = CUPS_SERVERROOT;
snprintf(line, sizeof(line), "%s/lpoptions", cups_serverroot);
if ((fp = cupsFileOpen(line, "r")) != NULL)
{
linenum = 0;
while (cupsFileGetConf(fp, line, sizeof(line), &value, &linenum))
{
/*
* Make sure we have "Dest name options" or "Default name options"...
*/
if ((_cups_strcasecmp(line, "Dest") && _cups_strcasecmp(line, "Default")) || !value)
continue;
/*
* Separate destination name from options...
*/
for (optptr = value; *optptr && !isspace(*optptr & 255); optptr ++);
while (*optptr == ' ')
*optptr++ = '\0';
/*
* If this is our destination, parse the options and break out of
* the loop - we're done!
*/
if (!_cups_strcasecmp(value, name))
{
num_options = cupsParseOptions(optptr, num_options, options);
break;
}
}
cupsFileClose(fp);
}
}
else if (options)
*options = NULL;
/*
* Return the number of options for this destination...
*/
return (num_options);
}
开发者ID:jianglei12138,项目名称:cups,代码行数:101,代码来源:cups-lpd.c
示例20: _cupsSetDefaults
void
_cupsSetDefaults(void)
{
cups_file_t *fp; /* File */
const char *home; /* Home directory of user */
char
|
请发表评论