• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisiond0e4e6863e99bd8b789d96db00994b0e6f0b9370 (tree)
Time2012-02-23 00:47:38
Authorqwerty2501 <riot313@gmai...>
Commiterqwerty2501

Log Message

operaクッキー対応

Change Summary

Incremental Difference

Binary files a/nlite.suo and b/nlite.suo differ
--- a/shareCookie/shareCookie.c
+++ b/shareCookie/shareCookie.c
@@ -1,6 +1,6 @@
11
22 #include "shareCookie.h"
3-
3+#define WINDEBUGER_NOPRINTING
44
55 #include <shlobj.h>
66 #include <Wininet.h>
@@ -24,8 +24,8 @@ static sqlite3_stmt *googleChromeCookieStmt; //
2424 static CRITICAL_SECTION googleChromeCs; //グーグルクロームのクッキー取得用クリティカルセクション
2525
2626
27-static WCHAR safariCookiePath[_MAX_PATH]; //サファリのクッキーパス
28-
27+static WCHAR safariCookiePath[_MAX_PATH]; //Safariのクッキーパス
28+static WCHAR operaCookiePath[_MAX_PATH]; //Operaのクッキーパス
2929
3030 typedef COOKIE_RESULT (*SelfParseCookieCallBack)(LPCSTR targetString,LPCSTR targetEndPointer,LPWSTR cookie,SIZE_T bufSize,LPCWSTR key,LPCWSTR domein);
3131
@@ -169,6 +169,11 @@ VOID InitializeShareCookie(LPCWSTR appDataPath,LPCWSTR localAppDataPath){
169169 wcscpy(safariCookiePath,appDataPath);
170170 wcscat(safariCookiePath,L"Apple Computer\\Safari\\Cookies\\Cookies.binarycookies");
171171
172+ //Operaの設定
173+ //
174+ wcscpy(operaCookiePath,appDataPath);
175+ wcscat(operaCookiePath,L"Opera\\Opera\\cookies4.dat");
176+
172177 return;
173178 }
174179
@@ -215,7 +220,7 @@ COOKIE_RESULT GetCookie(BROWSERTYPE browserType,LPWSTR cookie,SIZE_T bufSize, LP
215220 //オペラの場合
216221 case BT_OPERA:
217222
218- return SelfParseCookie(NULL,cookie,bufSize,key,domein,GetCookieOpera);
223+ return SelfParseCookie(operaCookiePath,cookie,bufSize,key,domein,GetCookieOpera);
219224
220225
221226 //サファリの場合
@@ -648,9 +653,81 @@ end:
648653 ///
649654 static INLINE COOKIE_RESULT GetCookieOpera(LPCSTR targetString,LPCSTR targetEndPointer,LPWSTR cookies,SIZE_T bufSize, LPCWSTR key,LPCWSTR domein){
650655
651-
656+ COOKIE_RESULT result = COOKIE_ERR_UNKNOWN;
657+ CHAR mb_key[_MAX_PATH];
658+ CHAR mb_domein[_MAX_PATH];
659+ LPCSTR cookiePointer;
660+ LPCSTR keyPointer;
661+ SIZE_T mb_keyLen;
662+
663+ if(ARRAY_LENGTH(mb_key) < GetLenToMB(CP_THREAD_ACP,key)){
664+
665+ goto keybuffbigerr;
666+
667+ } else if(ARRAY_LENGTH(mb_domein) < GetLenToMB(CP_THREAD_ACP,domein) ){
668+
669+ goto domeinbuffbigerr;
670+
671+ }
672+
673+
674+ WideToMB(CP_THREAD_ACP,key,mb_key,ARRAY_LENGTH(mb_key));
675+ WideToMB(CP_THREAD_ACP,domein,mb_domein,ARRAY_LENGTH(mb_domein));
676+ strstr(mb_domein,".jp")[0] = '\0';
677+
678+ for(;targetString < targetEndPointer;targetString += strlen(targetString) + 1){
679+
680+
681+ if(strncmp(targetString + 1,mb_domein,strlen(mb_domein)) == 0){
682+
683+
684+
685+
686+
687+ for(keyPointer = (targetString + strlen(targetString) + 1);keyPointer < targetEndPointer;keyPointer = (keyPointer + strlen(keyPointer) + 1)){
688+ if(strstr(keyPointer,mb_key) !=NULL){
689+ CHAR cookie_mbBuff[_MAX_PATH];
690+ UINT_PTR length;
691+ cookiePointer = keyPointer+ strlen(keyPointer) + 1;
692+ length = strlen(cookiePointer) -2;
693+ strncpy(cookie_mbBuff,cookiePointer+1,length);
694+ cookie_mbBuff[length] = '\0';
695+ if(((INT_PTR)bufSize) < GetLenToWide(CP_THREAD_ACP,cookie_mbBuff) + wcslen(key) + 1){
696+
697+ goto cookiebuffbigerr;
698+ }
699+ wcscpy(cookies,key);
700+ cookies += wcslen(cookies);
701+ cookies[0] = L'=';
702+ cookies++;
703+
704+ MBToWide(CP_THREAD_ACP,cookie_mbBuff,cookies,bufSize);
705+ result = COOKIE_ERR_OK;
706+ goto end;
707+ }
708+ }
709+
710+ }
711+
712+ }
713+
714+end:
715+
716+
717+ return result;
718+
652719
653- return COOKIE_ERR_DETAIL_NOTFOUND;
720+keybuffbigerr:
721+ result = COOKIE_ERR_DETAIL_URL_TOOBIG;
722+ goto end;
723+
724+domeinbuffbigerr:
725+ result = COOKIE_ERR_DETAIL_DOMEIN_TOOBIG;
726+ goto end;
727+
728+cookiebuffbigerr:
729+ result = COOKIEERR_DETAIL_RESULT_TOOBIG;
730+ goto end;
654731 }
655732
656733 ///
@@ -664,7 +741,7 @@ static INLINE COOKIE_RESULT GetCookieSafari(LPCSTR targetString,LPCSTR targetEnd
664741 LPCSTR domeinPointer;
665742 SIZE_T mb_keyLen;
666743
667- if(ARRAY_LENGTH(mb_key) < GetLenToMB(CP_THREAD_ACP,key) - 1){
744+ if(ARRAY_LENGTH(mb_key)-1 < GetLenToMB(CP_THREAD_ACP,key)){
668745
669746 goto keybuffbigerr;
670747
@@ -698,6 +775,7 @@ static INLINE COOKIE_RESULT GetCookieSafari(LPCSTR targetString,LPCSTR targetEnd
698775
699776 MBToWide(CP_THREAD_ACP,cookiePointer,cookies,bufSize);
700777 result = COOKIE_ERR_OK;
778+ break;
701779 }
702780 }
703781