108 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  1. <!DOCTYPE html>
  2. <html>
  3. <head data-suburl="">
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  6. <meta name="author" content="diogo" />
  7. <meta name="description" content="gnu-social - GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation." />
  8. <meta name="keywords" content="go, git, self-hosted, gogs">
  9. <meta name="referrer" content="no-referrer" />
  10. <meta name="_csrf" content="403-YO-ywdP8Wrun1Lw2IzLCb1Q6MTYwNDc5MjMxNDMyMDAyNzA4MQ==" />
  11. <meta name="_suburl" content="" />
  12. <meta property="og:url" content="https://notabug.org/diogo/gnu-social" />
  13. <meta property="og:type" content="object" />
  14. <meta property="og:title" content="diogo/gnu-social">
  15. <meta property="og:description" content="GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation.">
  16. <meta property="og:image" content="https://notabug.org/avatars/12290" />
  17. <link rel="shortcut icon" href="/img/favicon.png" />
  18. <script src="/js/jquery-1.11.3.min.js"></script>
  19. <script src="/js/libs/jquery.are-you-sure.js"></script>
  20. <link href="/img/icon-48.ico" rel="icon" type="image/x-icon" />
  21. <link href="/img/icon-60.png" rel="apple-touch-icon">
  22. <link href="/img/icon-76.png" rel="apple-touch-icon" sizes="76x76">
  23. <link href="/img/icon-120.png" rel="apple-touch-icon" sizes="120x120">
  24. <link href="/img/icon-152.png" rel="apple-touch-icon" sizes="152x152">
  25. <link href="/img/icon-240.png" rel="apple-touch-icon" sizes="240x240">
  26. <link rel="stylesheet" href="/assets/font-awesome-4.6.3/css/font-awesome.min.css">
  27. <link rel="stylesheet" href="/assets/octicons-4.3.0/octicons.min.css">
  28. <link rel="stylesheet" href="/css/semantic-2.2.13.min.css">
  29. <link rel="stylesheet" href="/css/gogs.css?v=6fc9e85aa88133794d3434ea74aa557a">
  30. <link rel="stylesheet" href="/css/notabug.css">
  31. <script src="/js/semantic-2.2.13.min.js"></script>
  32. <script src="/js/gogs.js?v=6fc9e85aa88133794d3434ea74aa557a"></script>
  33. <title>Signature problems following mastodon accounts with 2.0-dev - NotABug.org: Free code hosting</title>
  34. <meta name="theme-color" content="#428bca">
  35. <noscript><style>.nojs-popup:hover > .menu { display: block ; }</style></noscript>
  36. </head>
  37. <body>
  38. <div class="full height">
  39. <noscript>Please enable JavaScript in your browser!</noscript>
  40. <div id="header-div" class="following bar light">
  41. <div class="ui container">
  42. <div class="ui grid">
  43. <div class="column">
  44. <div class="ui top secondary menu">
  45. <a class="item brand" href="/">
  46. <img class="ui mini image" src="/img/favicon.png">
  47. </a>
  48. <a class="item" href="/">Home</a>
  49. <a class="item" href="/explore/repos">Explore</a>
  50. <a class="notabug-item item" href="/help" rel="noreferrer">Help</a>
  51. <div class="right menu">
  52. <a class="item" href="/user/sign_up">
  53. <i class="octicon octicon-person"></i> Register
  54. </a>
  55. <a class="item" href="/user/login?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f108">
  56. <i class="octicon octicon-sign-in"></i> Sign In
  57. </a>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. <div class="repository view issue pull">
  65. <div class="header-wrapper">
  66. <div class="ui container">
  67. <div class="ui vertically padded grid head">
  68. <div class="column">
  69. <div class="ui header">
  70. <div class="ui huge breadcrumb">
  71. <i class="mega-octicon octicon-repo"></i>
  72. <a href="/diogo">diogo</a>
  73. <div class="divider"> / </div>
  74. <a href="/diogo/gnu-social">gnu-social</a>
  75. </div>
  76. <div class="ui right">
  77. <div class="ui labeled button" tabindex="0">
  78. <a class="ui basic button" href="/diogo/gnu-social/action/watch?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f108">
  79. <i class="icon fa-eye-slash"></i>Watch
  80. </a>
  81. <a class="ui basic label" href="/diogo/gnu-social/watchers">
  82. 9
  83. </a>
  84. </div>
  85. <div class="ui labeled button" tabindex="0">
  86. <a class="ui basic button" href="/diogo/gnu-social/action/star?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f108">
  87. <i class="icon fa-star-o"></i>Star
  88. </a>
  89. <a class="ui basic label" href="/diogo/gnu-social/stars">
  90. 22
  91. </a>
  92. </div>
  93. <div class="ui labeled button" tabindex="0">
  94. <a class="ui basic button " href="/repo/fork/25974">
  95. <i class="octicon octicon-repo-forked"></i>Fork
  96. </a>
  97. <a class="ui basic label" href="/diogo/gnu-social/forks">
  98. 21
  99. </a>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="ui tabs container">
  107. <div class="ui tabular menu navbar">
  108. <a class=" item" href="/diogo/gnu-social">
  109. <i class="octicon octicon-file-text"></i> Files
  110. </a>
  111. <a class="active item" href="/diogo/gnu-social/issues">
  112. <i class="octicon octicon-issue-opened"></i> Issues <span class="ui blue small label">73</span>
  113. </a>
  114. <a class=" item" href="/diogo/gnu-social/pulls">
  115. <i class="octicon octicon-git-pull-request"></i> Pull Requests <span class="ui blue small label">3</span>
  116. </a>
  117. <a class=" item" href="/diogo/gnu-social/wiki">
  118. <i class="octicon octicon-book"></i> Wiki
  119. </a>
  120. </div>
  121. </div>
  122. <div class="ui tabs divider"></div>
  123. </div>
  124. <div class="ui container">
  125. <div class="navbar">
  126. <div class="ui compact small menu">
  127. <a class=" item" href="/diogo/gnu-social/labels">Labels</a>
  128. <a class=" item" href="/diogo/gnu-social/milestones">Milestones</a>
  129. </div>
  130. <div class="ui right">
  131. <a class="ui green button" href="/diogo/gnu-social/issues/new">New Issue</a>
  132. </div>
  133. </div>
  134. <div class="ui divider"></div>
  135. <div>
  136. <div class="ui grid">
  137. <div class="sixteen wide column title">
  138. <div class="ui grid">
  139. <h1 class="twelve wide column">
  140. <span class="index">#108</span> <span id="issue-title" class="has-emoji">Signature problems following mastodon accounts with 2.0-dev</span>
  141. <div id="edit-title-input" class="ui input" style="display: none">
  142. <input value="Signature problems following mastodon accounts with 2.0-dev">
  143. </div>
  144. </h1>
  145. </div>
  146. <div class="ui red large label"><i class="octicon octicon-issue-closed"></i> Closed</div>
  147. <span class="time-desc">
  148. opened <span class="time-since" title="Mon, 27 Jan 2020 19:46:18 UTC">9 months ago</span> by <a href="/colegota">colegota</a>
  149. ·
  150. 1 comments
  151. </span>
  152. <div class="ui divider"></div>
  153. </div>
  154. <div class="twelve wide column comment-list">
  155. <ui class="ui comments">
  156. <div class="comment">
  157. <a class="avatar" href="/colegota">
  158. <img src="https://seccdn.libravatar.org/avatar/eaed8e49be9e0ea6cccb4ff0988a3c61">
  159. </a>
  160. <div class="content">
  161. <div class="ui top attached header">
  162. <span class="text grey"><a href="/colegota">colegota</a> commented <a href="#issue-64445"><span class="time-since" title="Mon, 27 Jan 2020 19:46:18 UTC">9 months ago</span></a></span>
  163. <div class="ui right actions">
  164. </div>
  165. </div>
  166. <div class="ui attached segment">
  167. <div class="render-content markdown has-emoji">
  168. <p>Hi!</p>
  169. <p>I run two instances with GS 2.0-dev, the behaviour following Mastodon accounts it&#39;s more or less the same and it depends on node while all of them saids are running v3.0.1.</p>
  170. <p>I&#39;m running it in a server with CentOS and CPanel, PHP 7.3, MariaDB 10.3 and Apache.</p>
  171. <p>I can follow and interact (1) with users in mastodon.social and a few more nodes. With other nodes I can follow account but not interact, and there are nodes what I can&#39;t follow accounts.</p>
  172. <p>(1) In fact there are also signature problems that does not allow receive notices by mastodon.social and other nodes, but I&#39;ve modified the signature control to avoid it.</p>
  173. <p>At this issue I will explain only subscribing problems. I&#39;ll try to open another issue for reading and post notices with other nodes.</p>
  174. <p>Well looking at logs and following code, most of the process seems to be good until the call to <a href="https://notabug.org/diogo/gnu-social/src/nightly/lib/util/httpclient.php#L369" rel="nofollow">httpclient::send() function</a>.</p>
  175. <p><strong>Example of success subscription</strong></p>
  176. <pre><code>2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] Performing discovery for &#34;acct:spla@mastodont.cat&#34; (normalized &#34;acct:spla@mastodont.cat&#34;)
  177. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] LRDD discovery method for &#39;acct:spla@mastodont.cat&#39;: LRDDMethod_WebFinger
  178. 2020-01-26 11:22:57 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] HTTPClient: HTTP GET https://mastodont.cat/.well-known/webfinger?resource=acct%3Aspla%40mastodont.cat - 200 OK
  179. 2020-01-26 11:22:57 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] Discovery on acct:acct:spla@mastodont.cat with profile URL https://mastodont.cat/@spla
  180. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Started now looking for https://mastodont.cat/@spla
  181. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mastodont.cat/@spla offline.
  182. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Unable to find a local Aprofile for https://mastodont.cat/@spla - looking for a Profile instead.
  183. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Will try everything again with online resources against: https://mastodont.cat/@spla
  184. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mastodont.cat/@spla with online resources.
  185. 2020-01-26 11:22:58 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] HTTPClient: HTTP GET https://mastodont.cat/@spla - 200 OK
  186. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Found a local Aprofile for https://mastodont.cat/users/spla
  187. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Postman: Delivering {&#34;@context&#34;:&#34;https://www.w3.org/ns/activitystreams&#34;,&#34;id&#34;:&#34;https://gnusocial.sierranorte.red/follow_from_http%3A%2F%2Fgnusocial.sierranorte.red%2Findex.php%2Fuser%2F1_to_https%3A%2F%2Fmastodont.cat%2Fusers%2Fspla&#34;,&#34;type&#34;:&#34;Follow&#34;,&#34;actor&#34;:&#34;http://gnusocial.sierranorte.red/index.php/user/1&#34;,&#34;object&#34;:&#34;https://mastodont.cat/users/spla&#34;} to https://mastodont.cat/inbox
  188. </code></pre>
  189. <p>Headers</p>
  190. <pre><code>2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Postman: Delivery headers were: Array
  191. (
  192. [0] =&gt; Date: Sun, 26 Jan 2020 11:22:58 GMT
  193. [1] =&gt; Host: mastodont.cat
  194. [2] =&gt; Accept: application/ld+json; profile=&#34;https://www.w3.org/ns/activitystreams&#34;, application/activity+json, application/json
  195. [3] =&gt; User-Agent: GNU social ActivityPub Plugin - https://gnusocial.network/
  196. [4] =&gt; Content-Type: application/activity+json
  197. [5] =&gt; Digest: SHA-256=pJJpxDO9508+78+NAh8kExwRE43DAFRjylS4QaAyb0E=
  198. [6] =&gt; Signature: keyId=&#34;http://gnusocial.sierranorte.red/index.php/user/1#public-key&#34;,headers=&#34;(request-target) date host accept user-agent content-type digest&#34;,algorithm=&#34;rsa-sha256&#34;,signature=&#34;rF0ayCkKciOoNbb4XZOsYHP4VLcoUyCXp9tKX/UHs27DAV4sKmr2jgPy39KcrSjA++YRmNgA2qmwoAF5/EmZExF7wLa+lxHxZxnJ0DBCSI1sU4LyHPvBppi2lPA4N78O3zCe5G/WwzMqNpR0a8lvULWispRGWn4UtmC4648jiHCXwLHhfunSDJha0kO+phwpG/n2RcSbvqhffghl5sXUtVXMI9qA/4OFmIz2TF9TJnv1siXSgM1R3ugxM5z24GvC7catZrBE1EHe85rctvCur7JUj3Uz0xfPpR2L484V2LVjhAqSzu3Y8LEqgoWg3ktKyn7YK8/wNmWlEGcZxAwoiw==&#34;
  199. )
  200. </code></pre>
  201. <p>And the result:</p>
  202. <pre><code>2020-01-26 11:22:58 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] HTTPClient: HTTP POST https://mastodont.cat/inbox - 202 Accepted
  203. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Postman: Delivery result with status code 202:
  204. </code></pre>
  205. <p><strong>This is an example of failed subscription</strong></p>
  206. <pre><code>2020-01-26 16:03:33 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] Performing discovery for &#34;acct:shevek@mstdn.io&#34; (normalized &#34;acct:shevek@mstdn.io&#34;)
  207. 2020-01-26 16:03:33 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] LRDD discovery method for &#39;acct:shevek@mstdn.io&#39;: LRDDMethod_WebFinger
  208. 2020-01-26 16:03:34 LOG_INFO: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] HTTPClient: HTTP GET https://mstdn.io/.well-known/webfinger?resource=acct%3Ashevek%40mstdn.io - 200 OK
  209. 2020-01-26 16:03:34 LOG_INFO: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] Discovery on acct:acct:shevek@mstdn.io with profile URL https://mstdn.io/@shevek
  210. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Started now looking for https://mstdn.io/@shevek
  211. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mstdn.io/@shevek offline.
  212. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Unable to find a local Aprofile for https://mstdn.io/@shevek - looking for a Profile instead.
  213. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Will try everything again with online resources against: https://mstdn.io/@shevek
  214. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mstdn.io/@shevek with online resources.
  215. 2020-01-26 16:03:34 LOG_INFO: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] HTTPClient: HTTP GET https://mstdn.io/@shevek - 200 OK
  216. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Found a local Aprofile for https://mstdn.io/users/shevek
  217. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Postman: Delivering {&#34;@context&#34;:&#34;https://www.w3.org/ns/activitystreams&#34;,&#34;id&#34;:&#34;https://gnusocial.sierranorte.red/follow_from_http%3A%2F%2Fgnusocial.sierranorte.red%2Findex.php%2Fuser%2F1_to_https%3A%2F%2Fmstdn.io%2Fusers%2Fshevek&#34;,&#34;type&#34;:&#34;Follow&#34;,&#34;actor&#34;:&#34;http://gnusocial.sierranorte.red/index.php/user/1&#34;,&#34;object&#34;:&#34;https://mstdn.io/users/shevek&#34;} to https://mstdn.io/inbox
  218. </code></pre>
  219. <p>Headers looks like others that works:</p>
  220. <pre><code>2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Postman: Delivery headers were: Array
  221. (
  222. [0] =&gt; Date: Sun, 26 Jan 2020 16:03:34 GMT
  223. [1] =&gt; Host: mstdn.io
  224. [2] =&gt; Accept: application/ld+json; profile=&#34;https://www.w3.org/ns/activitystreams&#34;, application/activity+json, application/json
  225. [3] =&gt; User-Agent: GNU social ActivityPub Plugin - https://gnusocial.network/
  226. [4] =&gt; Content-Type: application/activity+json
  227. [5] =&gt; Digest: SHA-256=YsRy7lHwYUqeuwQlsoGcq3Q8gZ2ISP70/k0wxo3K/Y0=
  228. [6] =&gt; Signature: keyId=&#34;http://gnusocial.sierranorte.red/index.php/user/1#public-key&#34;,headers=&#34;(request-target) date host accept user-agent content-type digest&#34;,algorithm=&#34;rsa-sha256&#34;,signature=&#34;by7dCTY4+j/oIiW19p7NVqXRCrjELs3FoIZtpGGB7ztPXHyR4spChlgVwAvfJnM5iSwnIiL3/O4HCRWocx/yzqgQftNwxRfRElNDyP4jhyloBvH2nQK7O83oov7valeN8AyZa6NUkfI9bMYUP3etoNsqbOFdbS8NMz7r+ElpFLhgnIB0aiSq4FugZoPzFNARS7ipTKfiIHUug9koshCfEmrSVrzCkX9FHR7wXi4iXs6ZAwyp2xJLkHXI4MD/bKgPMbM1nTS0EeKUxXWmfosg6Gsh4H1J3TXfSGBJ0B1QCxbnMHQxrydeYnz2NN18660gwZUuvfX8V8ELYgfwzc0p+w==&#34;
  229. )
  230. </code></pre>
  231. <p>But then it <a href="https://notabug.org/diogo/gnu-social/src/nightly/lib/util/httpclient.php#L369" rel="nofollow">fails to send</a>:</p>
  232. <pre><code>2020-01-26 16:03:37 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] [colegota] parent::send() with response &gt; 400
  233. 2020-01-26 16:03:37 LOG_ERR: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] HTTPClient: HTTP POST https://mstdn.io/inbox - 401 Unauthorized
  234. 2020-01-26 16:03:37 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Postman: Delivery result with status code 401: Public key not found for key http://gnusocial.sierranorte.red/index.php/user/1#public-key
  235. 2020-01-26 16:03:37 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] action.php - Server error &#39;500&#39; on &#39;remotefollowsub&#39;: An unknown error occurred.
  236. 2020-01-26 16:03:37 LOG_ERR: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] Handled serverError (500) but cannot output into desired format (NULL): &#39;An unknown error occurred.&#39;
  237. 2020-01-26 16:03:37 LOG_ERR: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ServerErrorAction: 500 An unknown error occurred.
  238. </code></pre>
  239. <p>Nodes that fails for me:</p>
  240. <ul>
  241. <li>mstdn.io</li>
  242. <li>mastodon.ar.al</li>
  243. <li>chile.masto.host</li>
  244. <li>mastodon.uy/</li>
  245. </ul>
  246. <p>Nodes I can subscribe:</p>
  247. <ul>
  248. <li>mastodon.social</li>
  249. <li>mastodon.madrid</li>
  250. <li>proyectozero.org</li>
  251. <li>fossium.space</li>
  252. <li>xarxa.cloud</li>
  253. <li>metalhead.club</li>
  254. </ul>
  255. </div>
  256. <div class="raw-content hide">Hi!
  257. I run two instances with GS 2.0-dev, the behaviour following Mastodon accounts it&#39;s more or less the same and it depends on node while all of them saids are running v3.0.1.
  258. I&#39;m running it in a server with CentOS and CPanel, PHP 7.3, MariaDB 10.3 and Apache.
  259. I can follow and interact (1) with users in mastodon.social and a few more nodes. With other nodes I can follow account but not interact, and there are nodes what I can&#39;t follow accounts.
  260. (1) In fact there are also signature problems that does not allow receive notices by mastodon.social and other nodes, but I&#39;ve modified the signature control to avoid it.
  261. At this issue I will explain only subscribing problems. I&#39;ll try to open another issue for reading and post notices with other nodes.
  262. Well looking at logs and following code, most of the process seems to be good until the call to [httpclient::send() function](https://notabug.org/diogo/gnu-social/src/nightly/lib/util/httpclient.php#L369).
  263. **Example of success subscription**
  264. ~~~
  265. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] Performing discovery for &#34;acct:spla@mastodont.cat&#34; (normalized &#34;acct:spla@mastodont.cat&#34;)
  266. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] LRDD discovery method for &#39;acct:spla@mastodont.cat&#39;: LRDDMethod_WebFinger
  267. 2020-01-26 11:22:57 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] HTTPClient: HTTP GET https://mastodont.cat/.well-known/webfinger?resource=acct%3Aspla%40mastodont.cat - 200 OK
  268. 2020-01-26 11:22:57 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] Discovery on acct:acct:spla@mastodont.cat with profile URL https://mastodont.cat/@spla
  269. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Started now looking for https://mastodont.cat/@spla
  270. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mastodont.cat/@spla offline.
  271. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Unable to find a local Aprofile for https://mastodont.cat/@spla - looking for a Profile instead.
  272. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Will try everything again with online resources against: https://mastodont.cat/@spla
  273. 2020-01-26 11:22:57 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mastodont.cat/@spla with online resources.
  274. 2020-01-26 11:22:58 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] HTTPClient: HTTP GET https://mastodont.cat/@spla - 200 OK
  275. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Explorer: Found a local Aprofile for https://mastodont.cat/users/spla
  276. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Postman: Delivering {&#34;@context&#34;:&#34;https://www.w3.org/ns/activitystreams&#34;,&#34;id&#34;:&#34;https://gnusocial.sierranorte.red/follow_from_http%3A%2F%2Fgnusocial.sierranorte.red%2Findex.php%2Fuser%2F1_to_https%3A%2F%2Fmastodont.cat%2Fusers%2Fspla&#34;,&#34;type&#34;:&#34;Follow&#34;,&#34;actor&#34;:&#34;http://gnusocial.sierranorte.red/index.php/user/1&#34;,&#34;object&#34;:&#34;https://mastodont.cat/users/spla&#34;} to https://mastodont.cat/inbox
  277. ~~~
  278. Headers
  279. ~~~
  280. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Postman: Delivery headers were: Array
  281. (
  282. [0] =&gt; Date: Sun, 26 Jan 2020 11:22:58 GMT
  283. [1] =&gt; Host: mastodont.cat
  284. [2] =&gt; Accept: application/ld&#43;json; profile=&#34;https://www.w3.org/ns/activitystreams&#34;, application/activity&#43;json, application/json
  285. [3] =&gt; User-Agent: GNU social ActivityPub Plugin - https://gnusocial.network/
  286. [4] =&gt; Content-Type: application/activity&#43;json
  287. [5] =&gt; Digest: SHA-256=pJJpxDO9508&#43;78&#43;NAh8kExwRE43DAFRjylS4QaAyb0E=
  288. [6] =&gt; Signature: keyId=&#34;http://gnusocial.sierranorte.red/index.php/user/1#public-key&#34;,headers=&#34;(request-target) date host accept user-agent content-type digest&#34;,algorithm=&#34;rsa-sha256&#34;,signature=&#34;rF0ayCkKciOoNbb4XZOsYHP4VLcoUyCXp9tKX/UHs27DAV4sKmr2jgPy39KcrSjA&#43;&#43;YRmNgA2qmwoAF5/EmZExF7wLa&#43;lxHxZxnJ0DBCSI1sU4LyHPvBppi2lPA4N78O3zCe5G/WwzMqNpR0a8lvULWispRGWn4UtmC4648jiHCXwLHhfunSDJha0kO&#43;phwpG/n2RcSbvqhffghl5sXUtVXMI9qA/4OFmIz2TF9TJnv1siXSgM1R3ugxM5z24GvC7catZrBE1EHe85rctvCur7JUj3Uz0xfPpR2L484V2LVjhAqSzu3Y8LEqgoWg3ktKyn7YK8/wNmWlEGcZxAwoiw==&#34;
  289. )
  290. ~~~
  291. And the result:
  292. ~~~
  293. 2020-01-26 11:22:58 LOG_INFO: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] HTTPClient: HTTP POST https://mastodont.cat/inbox - 202 Accepted
  294. 2020-01-26 11:22:58 LOG_DEBUG: [gnusocial.sierranorte.red:28032.841aee0c POST /main/remotefollowsub] ActivityPub Postman: Delivery result with status code 202:
  295. ~~~
  296. **This is an example of failed subscription**
  297. ~~~
  298. 2020-01-26 16:03:33 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] Performing discovery for &#34;acct:shevek@mstdn.io&#34; (normalized &#34;acct:shevek@mstdn.io&#34;)
  299. 2020-01-26 16:03:33 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] LRDD discovery method for &#39;acct:shevek@mstdn.io&#39;: LRDDMethod_WebFinger
  300. 2020-01-26 16:03:34 LOG_INFO: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] HTTPClient: HTTP GET https://mstdn.io/.well-known/webfinger?resource=acct%3Ashevek%40mstdn.io - 200 OK
  301. 2020-01-26 16:03:34 LOG_INFO: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] Discovery on acct:acct:shevek@mstdn.io with profile URL https://mstdn.io/@shevek
  302. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Started now looking for https://mstdn.io/@shevek
  303. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mstdn.io/@shevek offline.
  304. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Unable to find a local Aprofile for https://mstdn.io/@shevek - looking for a Profile instead.
  305. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Will try everything again with online resources against: https://mstdn.io/@shevek
  306. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Searching locally for https://mstdn.io/@shevek with online resources.
  307. 2020-01-26 16:03:34 LOG_INFO: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] HTTPClient: HTTP GET https://mstdn.io/@shevek - 200 OK
  308. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Explorer: Found a local Aprofile for https://mstdn.io/users/shevek
  309. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Postman: Delivering {&#34;@context&#34;:&#34;https://www.w3.org/ns/activitystreams&#34;,&#34;id&#34;:&#34;https://gnusocial.sierranorte.red/follow_from_http%3A%2F%2Fgnusocial.sierranorte.red%2Findex.php%2Fuser%2F1_to_https%3A%2F%2Fmstdn.io%2Fusers%2Fshevek&#34;,&#34;type&#34;:&#34;Follow&#34;,&#34;actor&#34;:&#34;http://gnusocial.sierranorte.red/index.php/user/1&#34;,&#34;object&#34;:&#34;https://mstdn.io/users/shevek&#34;} to https://mstdn.io/inbox
  310. ~~~
  311. Headers looks like others that works:
  312. ~~~
  313. 2020-01-26 16:03:34 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Postman: Delivery headers were: Array
  314. (
  315. [0] =&gt; Date: Sun, 26 Jan 2020 16:03:34 GMT
  316. [1] =&gt; Host: mstdn.io
  317. [2] =&gt; Accept: application/ld&#43;json; profile=&#34;https://www.w3.org/ns/activitystreams&#34;, application/activity&#43;json, application/json
  318. [3] =&gt; User-Agent: GNU social ActivityPub Plugin - https://gnusocial.network/
  319. [4] =&gt; Content-Type: application/activity&#43;json
  320. [5] =&gt; Digest: SHA-256=YsRy7lHwYUqeuwQlsoGcq3Q8gZ2ISP70/k0wxo3K/Y0=
  321. [6] =&gt; Signature: keyId=&#34;http://gnusocial.sierranorte.red/index.php/user/1#public-key&#34;,headers=&#34;(request-target) date host accept user-agent content-type digest&#34;,algorithm=&#34;rsa-sha256&#34;,signature=&#34;by7dCTY4&#43;j/oIiW19p7NVqXRCrjELs3FoIZtpGGB7ztPXHyR4spChlgVwAvfJnM5iSwnIiL3/O4HCRWocx/yzqgQftNwxRfRElNDyP4jhyloBvH2nQK7O83oov7valeN8AyZa6NUkfI9bMYUP3etoNsqbOFdbS8NMz7r&#43;ElpFLhgnIB0aiSq4FugZoPzFNARS7ipTKfiIHUug9koshCfEmrSVrzCkX9FHR7wXi4iXs6ZAwyp2xJLkHXI4MD/bKgPMbM1nTS0EeKUxXWmfosg6Gsh4H1J3TXfSGBJ0B1QCxbnMHQxrydeYnz2NN18660gwZUuvfX8V8ELYgfwzc0p&#43;w==&#34;
  322. )
  323. ~~~
  324. But then it [fails to send](https://notabug.org/diogo/gnu-social/src/nightly/lib/util/httpclient.php#L369):
  325. ~~~
  326. 2020-01-26 16:03:37 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] [colegota] parent::send() with response &gt; 400
  327. 2020-01-26 16:03:37 LOG_ERR: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] HTTPClient: HTTP POST https://mstdn.io/inbox - 401 Unauthorized
  328. 2020-01-26 16:03:37 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ActivityPub Postman: Delivery result with status code 401: Public key not found for key http://gnusocial.sierranorte.red/index.php/user/1#public-key
  329. 2020-01-26 16:03:37 LOG_DEBUG: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] action.php - Server error &#39;500&#39; on &#39;remotefollowsub&#39;: An unknown error occurred.
  330. 2020-01-26 16:03:37 LOG_ERR: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] Handled serverError (500) but cannot output into desired format (NULL): &#39;An unknown error occurred.&#39;
  331. 2020-01-26 16:03:37 LOG_ERR: [gnusocial.sierranorte.red:20540.ea2e798b POST /main/remotefollowsub] ServerErrorAction: 500 An unknown error occurred.
  332. ~~~
  333. Nodes that fails for me:
  334. * mstdn.io
  335. * mastodon.ar.al
  336. * chile.masto.host
  337. * mastodon.uy/
  338. Nodes I can subscribe:
  339. * mastodon.social
  340. * mastodon.madrid
  341. * proyectozero.org
  342. * fossium.space
  343. * xarxa.cloud
  344. * metalhead.club</div>
  345. <div class="edit-content-zone hide" data-write="issue-64445-write" data-preview="issue-64445-preview" data-update-url="/diogo/gnu-social/issues/108/content" data-context="/diogo/gnu-social"></div>
  346. </div>
  347. </div>
  348. </div>
  349. <div class="comment" id="issuecomment-19911">
  350. <a class="avatar" href="/diogo">
  351. <img src="/avatars/12290">
  352. </a>
  353. <div class="content">
  354. <div class="ui top attached header">
  355. <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issuecomment-19911"><span class="time-since" title="Wed, 08 Jul 2020 09:42:44 UTC">4 months ago</span></a></span>
  356. <div class="ui right actions">
  357. <div class="item tag">
  358. Owner
  359. </div>
  360. </div>
  361. </div>
  362. <div class="ui attached segment">
  363. <div class="render-content markdown has-emoji">
  364. <p>Fixed with <code><a href="https://notabug.org/diogo/gnu-social/commit/737f3eb55338a2d196b281114b9bb72e0a53168c" rel="nofollow">737f3eb553</a></code> . Related to <a href="https://notabug.org/diogo/gnu-social/issues/104" rel="nofollow">#104</a></p>
  365. </div>
  366. <div class="raw-content hide">Fixed with https://notabug.org/diogo/gnu-social/commit/737f3eb55338a2d196b281114b9bb72e0a53168c . Related to https://notabug.org/diogo/gnu-social/issues/104</div>
  367. <div class="edit-content-zone hide" data-write="issuecomment-19911-write" data-preview="issuecomment-19911-preview" data-update-url="/diogo/gnu-social/comments/19911" data-context="/diogo/gnu-social"></div>
  368. </div>
  369. </div>
  370. </div>
  371. <div class="event">
  372. <span class="octicon octicon-circle-slash"></span>
  373. <a class="ui avatar image" href="/diogo">
  374. <img src="/avatars/12290">
  375. </a>
  376. <span class="text grey"><a href="/diogo">diogo</a> closed <a id="event-19912" href="#event-19912"><span class="time-since" title="Wed, 08 Jul 2020 09:42:44 UTC">4 months ago</span></a></span>
  377. </div>
  378. <div class="ui warning message">
  379. <a href="/user/login?redirect_to=/diogo/gnu-social/issues/108">Sign in</a> to join this conversation.
  380. </div>
  381. </ui>
  382. </div>
  383. <div class="four wide column">
  384. <div class="ui segment metas">
  385. <div class="ui disabled floating jump select-label dropdown">
  386. <span class="text">
  387. <strong>Labels</strong>
  388. <span class="octicon octicon-gear"></span>
  389. </span>
  390. <div class="filter menu" data-action="update" data-update-url="/diogo/gnu-social/issues/108/label">
  391. <div class="no-select item">Clear labels</div>
  392. <a class=" item" href="#" data-id="1564" data-id-selector="#label_1564"><span class="octicon "></span><span class="label color" style="background-color: #fbca04"></span> bounty</a>
  393. <a class="checked item" href="#" data-id="1483" data-id-selector="#label_1483"><span class="octicon octicon-check"></span><span class="label color" style="background-color: #ee0701"></span> bug</a>
  394. <a class=" item" href="#" data-id="1484" data-id-selector="#label_1484"><span class="octicon "></span><span class="label color" style="background-color: #cccccc"></span> duplicate</a>
  395. <a class=" item" href="#" data-id="1485" data-id-selector="#label_1485"><span class="octicon "></span><span class="label color" style="background-color: #84b6eb"></span> enhancement</a>
  396. <a class=" item" href="#" data-id="1486" data-id-selector="#label_1486"><span class="octicon "></span><span class="label color" style="background-color: #128a0c"></span> help wanted</a>
  397. <a class=" item" href="#" data-id="1487" data-id-selector="#label_1487"><span class="octicon "></span><span class="label color" style="background-color: #e6e6e6"></span> invalid</a>
  398. <a class=" item" href="#" data-id="1488" data-id-selector="#label_1488"><span class="octicon "></span><span class="label color" style="background-color: #cc317c"></span> question</a>
  399. <a class=" item" href="#" data-id="1565" data-id-selector="#label_1565"><span class="octicon "></span><span class="label color" style="background-color: #d4c5f9"></span> RFC</a>
  400. <a class=" item" href="#" data-id="1841" data-id-selector="#label_1841"><span class="octicon "></span><span class="label color" style="background-color: #0052cc"></span> v3</a>
  401. <a class=" item" href="#" data-id="1489" data-id-selector="#label_1489"><span class="octicon "></span><span class="label color" style="background-color: #ffffff"></span> wontfix</a>
  402. </div>
  403. </div>
  404. <div class="ui labels list">
  405. <span class="no-select item hide">No Label</span>
  406. <div class="item">
  407. <a class="ui label hide" id="label_1564" href="/diogo/gnu-social/issues?labels=1564" style="color: #000; background-color: #fbca04">bounty</a>
  408. </div>
  409. <div class="item">
  410. <a class="ui label " id="label_1483" href="/diogo/gnu-social/issues?labels=1483" style="color: #fff; background-color: #ee0701">bug</a>
  411. </div>
  412. <div class="item">
  413. <a class="ui label hide" id="label_1484" href="/diogo/gnu-social/issues?labels=1484" style="color: #000; background-color: #cccccc">duplicate</a>
  414. </div>
  415. <div class="item">
  416. <a class="ui label hide" id="label_1485" href="/diogo/gnu-social/issues?labels=1485" style="color: #000; background-color: #84b6eb">enhancement</a>
  417. </div>
  418. <div class="item">
  419. <a class="ui label hide" id="label_1486" href="/diogo/gnu-social/issues?labels=1486" style="color: #fff; background-color: #128a0c">help wanted</a>
  420. </div>
  421. <div class="item">
  422. <a class="ui label hide" id="label_1487" href="/diogo/gnu-social/issues?labels=1487" style="color: #000; background-color: #e6e6e6">invalid</a>
  423. </div>
  424. <div class="item">
  425. <a class="ui label hide" id="label_1488" href="/diogo/gnu-social/issues?labels=1488" style="color: #fff; background-color: #cc317c">question</a>
  426. </div>
  427. <div class="item">
  428. <a class="ui label hide" id="label_1565" href="/diogo/gnu-social/issues?labels=1565" style="color: #000; background-color: #d4c5f9">RFC</a>
  429. </div>
  430. <div class="item">
  431. <a class="ui label hide" id="label_1841" href="/diogo/gnu-social/issues?labels=1841" style="color: #fff; background-color: #0052cc">v3</a>
  432. </div>
  433. <div class="item">
  434. <a class="ui label hide" id="label_1489" href="/diogo/gnu-social/issues?labels=1489" style="color: #000; background-color: #ffffff">wontfix</a>
  435. </div>
  436. </div>
  437. <div class="ui divider"></div>
  438. <div class="ui disabled floating jump select-milestone dropdown">
  439. <span class="text">
  440. <strong>Milestone</strong>
  441. <span class="octicon octicon-gear"></span>
  442. </span>
  443. <div class="menu" data-action="update" data-update-url="/diogo/gnu-social/issues/108/milestone">
  444. <div class="no-select item">Clear milestone</div>
  445. </div>
  446. </div>
  447. <div class="ui select-milestone list">
  448. <span class="no-select item ">No Milestone</span>
  449. <div class="selected">
  450. </div>
  451. </div>
  452. <div class="ui divider"></div>
  453. <input id="assignee_id" name="assignee_id" type="hidden" value="">
  454. <div class="ui disabled floating jump select-assignee dropdown">
  455. <span class="text">
  456. <strong>Assignee</strong>
  457. <span class="octicon octicon-gear"></span>
  458. </span>
  459. <div class="menu" data-action="update" data-update-url="/diogo/gnu-social/issues/108/assignee">
  460. <div class="no-select item">Clear assignee</div>
  461. </div>
  462. </div>
  463. <div class="ui select-assignee list">
  464. <span class="no-select item hide">No assignee</span>
  465. <div class="selected">
  466. <a class="item" href="/diogo/gnu-social/issues?assignee=12290"><img class="ui avatar image" src="/avatars/12290"> Diogo Cordeiro</a>
  467. </div>
  468. </div>
  469. <div class="ui divider"></div>
  470. <div class="ui participants">
  471. <span class="text"><strong>2 Participants</strong></span>
  472. <div>
  473. <a href="/colegota">
  474. <img class="ui avatar image poping up" src="https://seccdn.libravatar.org/avatar/eaed8e49be9e0ea6cccb4ff0988a3c61" data-content="colegota" data-position="top center" data-variation="small inverted">
  475. </a>
  476. <a href="/diogo">
  477. <img class="ui avatar image poping up" src="/avatars/12290" data-content="Diogo Cordeiro" data-position="top center" data-variation="small inverted">
  478. </a>
  479. </div>
  480. </div>
  481. </div>
  482. </div>
  483. </div>
  484. <div class="hide" id="edit-content-form">
  485. <div class="ui comment form">
  486. <div class="ui top attached tabular menu">
  487. <a class="active write item">Write</a>
  488. <a class="preview item" data-url="/api/v1/markdown" data-context="/diogo/gnu-social">Preview</a>
  489. </div>
  490. <div class="ui bottom attached active write tab segment">
  491. <textarea tabindex="1" id="content" name="content"></textarea>
  492. </div>
  493. <div class="ui bottom attached tab preview segment markdown">
  494. Loading...
  495. </div>
  496. <div class="text right edit buttons">
  497. <div class="ui basic blue cancel button" tabindex="3">Cancel</div>
  498. <div class="ui green save button" tabindex="2">Save</div>
  499. </div>
  500. </div>
  501. </div>
  502. <div class="hide" id="no-content">
  503. <span class="no-content">There is no content yet.</span>
  504. </div>
  505. </div>
  506. </div>
  507. </div>
  508. </div>
  509. <footer>
  510. <div class="ui container">
  511. <div class="ui left">
  512. <a href="/tos">Terms of Service</a>
  513. &bull;
  514. <a href="/about">About us</a>
  515. &bull;
  516. <a href="/outages">Outages</a>
  517. &bull;
  518. <a href="/hp/gogs/issues">Report a problem</a>
  519. &bull;
  520. <a href="/assets/librejs/librejs.html" data-jslicense="1">Javascript licenses</a>
  521. &bull;
  522. <a href="/fingerprints">SSH Fingerprints</a>
  523. </div>
  524. <div class="ui right links">
  525. <div class="ui language bottom floating slide up dropdown link item">
  526. <i class="world icon"></i>
  527. <div class="text">English</div>
  528. <div class="menu">
  529. <a class="item active selected" href="#">English</a>
  530. <a class="item " href="/diogo/gnu-social/issues/108?lang=zh-CN">简体中文</a>
  531. <a class="item " href="/diogo/gnu-social/issues/108?lang=zh-HK">繁體中文(香港)</a>
  532. <a class="item " href="/diogo/gnu-social/issues/108?lang=zh-TW">繁體中文(臺灣)</a>
  533. <a class="item " href="/diogo/gnu-social/issues/108?lang=de-DE">Deutsch</a>
  534. <a class="item " href="/diogo/gnu-social/issues/108?lang=fr-FR">français</a>
  535. <a class="item " href="/diogo/gnu-social/issues/108?lang=nl-NL">Nederlands</a>
  536. <a class="item " href="/diogo/gnu-social/issues/108?lang=lv-LV">latviešu</a>
  537. <a class="item " href="/diogo/gnu-social/issues/108?lang=ru-RU">русский</a>
  538. <a class="item " href="/diogo/gnu-social/issues/108?lang=ja-JP">日本語</a>
  539. <a class="item " href="/diogo/gnu-social/issues/108?lang=es-ES">español</a>
  540. <a class="item " href="/diogo/gnu-social/issues/108?lang=pt-BR">português do Brasil</a>
  541. <a class="item " href="/diogo/gnu-social/issues/108?lang=pl-PL">polski</a>
  542. <a class="item " href="/diogo/gnu-social/issues/108?lang=bg-BG">български</a>
  543. <a class="item " href="/diogo/gnu-social/issues/108?lang=it-IT">italiano</a>
  544. <a class="item " href="/diogo/gnu-social/issues/108?lang=fi-FI">suomi</a>
  545. <a class="item " href="/diogo/gnu-social/issues/108?lang=tr-TR">Türkçe</a>
  546. <a class="item " href="/diogo/gnu-social/issues/108?lang=cs-CZ">čeština</a>
  547. <a class="item " href="/diogo/gnu-social/issues/108?lang=sr-SP">српски</a>
  548. <a class="item " href="/diogo/gnu-social/issues/108?lang=sv-SE">svenska</a>
  549. <a class="item " href="/diogo/gnu-social/issues/108?lang=ko-KR">한국어</a>
  550. <a class="item " href="/diogo/gnu-social/issues/108?lang=gl-ES">galego</a>
  551. <a class="item " href="/diogo/gnu-social/issues/108?lang=uk-UA">українська</a>
  552. <a class="item " href="/diogo/gnu-social/issues/108?lang=en-GB">English (United Kingdom)</a>
  553. <a class="item " href="/diogo/gnu-social/issues/108?lang=hu-HU">Magyar</a>
  554. <a class="item " href="/diogo/gnu-social/issues/108?lang=sk-SK">Slovenčina</a>
  555. <a class="item " href="/diogo/gnu-social/issues/108?lang=id-ID">Indonesian</a>
  556. <a class="item " href="/diogo/gnu-social/issues/108?lang=fa-IR">Persian</a>
  557. </div>
  558. </div>
  559. </div>
  560. </div>
  561. </footer>
  562. </body>
  563. <link rel="stylesheet" href="/plugins/highlight-9.6.0/github.css">
  564. <script src="/plugins/highlight-9.6.0/highlight.pack.js"></script>
  565. <link rel="stylesheet" href="/plugins/dropzone-4.2.0/dropzone.css">
  566. <script src="/plugins/dropzone-4.2.0/dropzone.js"></script>
  567. <script src="/js/libs/emojify-1.1.0.min.js"></script>
  568. <script src="/js/libs/clipboard-1.5.9.min.js"></script>
  569. </html>