Files
interactive/SDK/version_3/solbox_util.c
2026-08-07 17:38:18 +09:00

98 lines
2.1 KiB
C

#include <stdio.h>
#include <ne_alloc.h>
#include <ne_string.h>
#include <ne_md5.h>
#include <ne_socket.h>
#include <ne_private.h>
#define USE_GETADDRINFO
#ifdef WIN32
#include <winsock2.h>
#include <stddef.h>
#ifdef USE_GETADDRINFO
#include <ws2tcpip.h>
#endif
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#endif
#include "solbox_util.h"
void md5_buffer(const char *buffer, char *digest)
{
unsigned char md5_buf[16];
struct ne_md5_ctx *ctx;
ctx = ne_md5_create_ctx();
ne_md5_process_bytes(buffer, strlen(buffer), ctx);
ne_md5_finish_ctx(ctx, md5_buf);
ne_md5_to_ascii(md5_buf, digest);
ne_md5_destroy_ctx(ctx);
// 0.26.0 버전 부터 바뀜
#ifdef __NEON_0_25_4__
struct ne_md5_ctx ctx;
ne_md5_init_ctx(&ctx);
ne_md5_process_bytes(buffer, strlen(buffer), &ctx);
ne_md5_finish_ctx(&ctx, md5_buf);
ne_md5_to_ascii(md5_buf, digest);
#endif // __NEON_0_25_4__
}
void md5_buffer_bin(const char *buffer, char *digest)
{
unsigned char md5_buf[16];
struct ne_md5_ctx *ctx;
ctx = ne_md5_create_ctx();
ne_md5_process_bytes(buffer, strlen(buffer), ctx);
ne_md5_finish_ctx(ctx, md5_buf);
memcpy(digest,md5_buf,16);
ne_md5_destroy_ctx(ctx);
// 0.26.0 버전 부터 바뀜
#ifdef __NEON_0_25_4__
struct ne_md5_ctx ctx;
ne_md5_init_ctx(&ctx);
ne_md5_process_bytes(buffer, strlen(buffer), &ctx);
ne_md5_finish_ctx(&ctx, md5_buf);
memcpy(digest,md5_buf,16);
#endif // __NEON_0_25_4__
}
// 버전UP(0.29.5) 따른 uri parse 대처
// 변경된 버전 경우 rc.solbox.com/dav 와 같은 형식으로 올경우 host(rc.solbox.com)를 파서 못함
// http://rc.solbox.com/dav 같은 형식으로 와야만이 host를 파싱할 수 있음
#define HTTP_SCHEME "http://"
int solbox_uri_parse(const char *uri, ne_uri *parsed)
{
// change uri : http:// 를 강제적으로 넣는다.
char tmpuri[1024] = {0};
if(ne_strncasecmp(uri, HTTP_SCHEME,strlen(HTTP_SCHEME)))
sprintf(tmpuri, "%s%s",HTTP_SCHEME, uri);
else
sprintf(tmpuri, "%s", uri);
return ne_uri_parse(tmpuri, parsed);
}
// ne_session 포함된 ne_socket 가져오는 함수
ne_socket* get_session_socket (ne_session* pnsess)
{
return pnsess->socket;
}