121 |
} |
} |
122 |
|
|
123 |
|
|
|
/* Always use the $users temp folder. */ |
|
|
static FILE* |
|
|
w32_tmpfile (char *tmp, DWORD tmplen) |
|
|
{ |
|
|
char id[16]; |
|
|
|
|
|
if (!GetTempPath (tmplen-17, tmp)) |
|
|
return NULL; |
|
|
if (tmp[strlen (tmp)-1] != '\\') |
|
|
strcat (tmp, "\\"); |
|
|
_snprintf (id, sizeof (id)-1, "%lu", GetTickCount ()); |
|
|
strcat (tmp, id); |
|
|
return fopen (tmp, "w+b"); |
|
|
} |
|
|
|
|
|
|
|
124 |
static int |
static int |
125 |
parse_attr_data (const char *keyid, attr_list_t *list) |
parse_attr_data (const char *keyid, attr_list_t *list) |
126 |
{ |
{ |
127 |
gpgme_error_t err; |
gpgme_error_t err; |
128 |
FILE *tmp; |
FILE *tmp; |
|
char *status, tmpnam[MAX_PATH+1]; |
|
129 |
BYTE *data; |
BYTE *data; |
130 |
DWORD ndata; |
char *status, tmpnam[MAX_PATH+1]; |
131 |
|
DWORD ndata = 0; |
132 |
|
|
133 |
err = gpg_get_photoid_data (keyid, &status, &data, &ndata); |
err = gpg_get_photoid_data (keyid, &status, &data, &ndata); |
134 |
if (err) |
if (err) |
135 |
return err; |
return err; |
136 |
|
|
137 |
if (ndata > 0 && (tmp = w32_tmpfile (tmpnam, MAX_PATH)) != NULL) { |
get_temp_name (tmpnam, MAX_PATH, NULL); |
138 |
|
tmp = fopen (tmpnam, "w+b"); |
139 |
|
if (ndata > 0 && tmp != NULL) { |
140 |
fwrite (status, 1, strlen (status), tmp); |
fwrite (status, 1, strlen (status), tmp); |
141 |
fflush (tmp); |
fflush (tmp); |
142 |
rewind (tmp); |
rewind (tmp); |