Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/translations/documentation/booksarch-handbookjail_index/en/units/?format=api&page=2
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 92,
    "next": null,
    "previous": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/units/?format=api",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "int\njail_attach(struct thread *td, struct jail_attach_args *uap)\n{\n    struct proc *p;\n    struct ucred *newcred, *oldcred;\n    struct prison *pr;\n...\n    p = td->td_proc;\n...\n    pr = prison_find(uap->jid);\n...\n    change_root(pr->pr_root, td);\n...\n    newcred->cr_prison = pr;\n    p->p_ucred = newcred;\n...\n}\n"
            ],
            "previous_source": "",
            "target": [
                "int\njail_attach(struct thread *td, struct jail_attach_args *uap)\n{\n    struct proc *p;\n    struct ucred *newcred, *oldcred;\n    struct prison *pr;\n...\n    p = td->td_proc;\n...\n    pr = prison_find(uap->jid);\n...\n    change_root(pr->pr_root, td);\n...\n    newcred->cr_prison = pr;\n    p->p_ucred = newcred;\n...\n}\n"
            ],
            "id_hash": -6250486701003858849,
            "content_hash": -6250486701003858849,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:313",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 52,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 38,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127712/?format=api",
            "priority": 100,
            "id": 1127712,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=2941cf76415c9c5f",
            "url": "https://translate-dev.freebsd.org/api/units/1127712/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.120565Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "When a process is forked from its parent process, the man:fork[2] system call uses `crhold()` to maintain the credential for the newly forked process. It inherently keep the newly forked child's credential consistent with its parent, so the child process is also jailed."
            ],
            "previous_source": "",
            "target": [
                "When a process is forked from its parent process, the man:fork[2] system call uses `crhold()` to maintain the credential for the newly forked process. It inherently keep the newly forked child's credential consistent with its parent, so the child process is also jailed."
            ],
            "id_hash": 5232469877447888724,
            "content_hash": 5232469877447888724,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:316",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 53,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 43,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127714/?format=api",
            "priority": 100,
            "id": 1127714,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=c89d77a177368f54",
            "url": "https://translate-dev.freebsd.org/api/units/1127714/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.145253Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_fork.c:\np2->p_ucred = crhold(td->td_ucred);\n...\ntd2->td_ucred = crhold(p2->p_ucred);\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/src/sys/kern/kern_fork.c:\np2->p_ucred = crhold(td->td_ucred);\n...\ntd2->td_ucred = crhold(p2->p_ucred);\n"
            ],
            "id_hash": -4416722903964359959,
            "content_hash": -4416722903964359959,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:323",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 54,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 8,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127716/?format=api",
            "priority": 100,
            "id": 1127716,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=42b4a5eb6ddf62e9",
            "url": "https://translate-dev.freebsd.org/api/units/1127716/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.189662Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Restrictions"
            ],
            "previous_source": "",
            "target": [
                "Restrictions"
            ],
            "id_hash": -4326217652693749668,
            "content_hash": -4326217652693749668,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:326",
            "context": "",
            "note": "type: Title ==",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 55,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127718/?format=api",
            "priority": 100,
            "id": 1127718,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=43f62ff7562a305c",
            "url": "https://translate-dev.freebsd.org/api/units/1127718/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.212229Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Throughout the kernel there are access restrictions relating to jailed processes. Usually, these restrictions only check whether the process is jailed, and if so, returns an error. For example:"
            ],
            "previous_source": "",
            "target": [
                "Throughout the kernel there are access restrictions relating to jailed processes. Usually, these restrictions only check whether the process is jailed, and if so, returns an error. For example:"
            ],
            "id_hash": -3255974421327778012,
            "content_hash": -3255974421327778012,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:329",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 56,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 29,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127720/?format=api",
            "priority": 100,
            "id": 1127720,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=52d07483c2ffef24",
            "url": "https://translate-dev.freebsd.org/api/units/1127720/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.235091Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "if (jailed(td->td_ucred))\n    return (EPERM);\n"
            ],
            "previous_source": "",
            "target": [
                "if (jailed(td->td_ucred))\n    return (EPERM);\n"
            ],
            "id_hash": 3608342913158452524,
            "content_hash": 3608342913158452524,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:334",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 57,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127722/?format=api",
            "priority": 100,
            "id": 1127722,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=b21368c2fe9b952c",
            "url": "https://translate-dev.freebsd.org/api/units/1127722/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.282839Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "SysV IPC"
            ],
            "previous_source": "",
            "target": [
                "SysV IPC"
            ],
            "id_hash": 2862600192316186374,
            "content_hash": 2862600192316186374,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:336",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 58,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127724/?format=api",
            "priority": 100,
            "id": 1127724,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=a7b9ffb54cf89f06",
            "url": "https://translate-dev.freebsd.org/api/units/1127724/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.305517Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "System V IPC is based on messages. Processes can send each other these messages which tell them how to act. The functions which deal with messages are: man:msgctl[3], man:msgget[3], man:msgsnd[3] and man:msgrcv[3]. Earlier, I mentioned that there were certain sysctls you could turn on or off in order to affect the behavior of jail. One of these sysctls was `security.jail.sysvipc_allowed`. By default, this sysctl is set to 0. If it were set to 1, it would defeat the whole purpose of having a jail; privileged users from the jail would be able to affect processes outside the jailed environment. The difference between a message and a signal is that the message only consists of the signal number."
            ],
            "previous_source": "",
            "target": [
                "System V IPC is based on messages. Processes can send each other these messages which tell them how to act. The functions which deal with messages are: man:msgctl[3], man:msgget[3], man:msgsnd[3] and man:msgrcv[3]. Earlier, I mentioned that there were certain sysctls you could turn on or off in order to affect the behavior of jail. One of these sysctls was `security.jail.sysvipc_allowed`. By default, this sysctl is set to 0. If it were set to 1, it would defeat the whole purpose of having a jail; privileged users from the jail would be able to affect processes outside the jailed environment. The difference between a message and a signal is that the message only consists of the signal number."
            ],
            "id_hash": 4080190393770106179,
            "content_hash": 4080190393770106179,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:339",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 59,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 117,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127726/?format=api",
            "priority": 100,
            "id": 1127726,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=b89fbf8b9ca0dd43",
            "url": "https://translate-dev.freebsd.org/api/units/1127726/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.330554Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "[.filename]#/usr/src/sys/kern/sysv_msg.c#:"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#/usr/src/sys/kern/sysv_msg.c#:"
            ],
            "id_hash": 5115890813890283221,
            "content_hash": 5115890813890283221,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:341",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 60,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127728/?format=api",
            "priority": 100,
            "id": 1127728,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=c6ff4b970f9d46d5",
            "url": "https://translate-dev.freebsd.org/api/units/1127728/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.388773Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`msgget(key, msgflg)`: `msgget` returns (and possibly creates) a message descriptor that designates a message queue for use in other functions."
            ],
            "previous_source": "",
            "target": [
                "`msgget(key, msgflg)`: `msgget` returns (and possibly creates) a message descriptor that designates a message queue for use in other functions."
            ],
            "id_hash": 3098748163555332502,
            "content_hash": 3098748163555332502,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:343",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 61,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127730/?format=api",
            "priority": 100,
            "id": 1127730,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=ab00f709711c1196",
            "url": "https://translate-dev.freebsd.org/api/units/1127730/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.412123Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`msgctl(msgid, cmd, buf)`: Using this function, a process can query the status of a message descriptor."
            ],
            "previous_source": "",
            "target": [
                "`msgctl(msgid, cmd, buf)`: Using this function, a process can query the status of a message descriptor."
            ],
            "id_hash": 6100741742919022227,
            "content_hash": 6100741742919022227,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:344",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 62,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127732/?format=api",
            "priority": 100,
            "id": 1127732,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=d4aa304ac515f693",
            "url": "https://translate-dev.freebsd.org/api/units/1127732/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.440309Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`msgsnd(msgid, msgp, msgsz, msgflg)`: `msgsnd` sends a message to a process."
            ],
            "previous_source": "",
            "target": [
                "`msgsnd(msgid, msgp, msgsz, msgflg)`: `msgsnd` sends a message to a process."
            ],
            "id_hash": -777231672871349731,
            "content_hash": -777231672871349731,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:345",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 63,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 11,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127734/?format=api",
            "priority": 100,
            "id": 1127734,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=7536b7e95652121d",
            "url": "https://translate-dev.freebsd.org/api/units/1127734/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.491136Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`msgrcv(msgid, msgp, msgsz, msgtyp, msgflg)`: a process receives messages using this function"
            ],
            "previous_source": "",
            "target": [
                "`msgrcv(msgid, msgp, msgsz, msgtyp, msgflg)`: a process receives messages using this function"
            ],
            "id_hash": -2985211165402693180,
            "content_hash": -2985211165402693180,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:346",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 64,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127736/?format=api",
            "priority": 100,
            "id": 1127736,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=56926642eaa481c4",
            "url": "https://translate-dev.freebsd.org/api/units/1127736/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.533968Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "In each of the system calls corresponding to these functions, there is this conditional:"
            ],
            "previous_source": "",
            "target": [
                "In each of the system calls corresponding to these functions, there is this conditional:"
            ],
            "id_hash": 4977791690415513173,
            "content_hash": 4977791690415513173,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:348",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 65,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 14,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127738/?format=api",
            "priority": 100,
            "id": 1127738,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=c514ab2b411b9e55",
            "url": "https://translate-dev.freebsd.org/api/units/1127738/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.599697Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "/usr/src/sys/kern/sysv_msg.c:\nif (!jail_sysvipc_allowed && jailed(td->td_ucred))\n    return (ENOSYS);\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/src/sys/kern/sysv_msg.c:\nif (!jail_sysvipc_allowed && jailed(td->td_ucred))\n    return (ENOSYS);\n"
            ],
            "id_hash": -491104376070444775,
            "content_hash": -491104376070444775,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:354",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 66,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 7,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127740/?format=api",
            "priority": 100,
            "id": 1127740,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=792f3f2c04ae6919",
            "url": "https://translate-dev.freebsd.org/api/units/1127740/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.634410Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Semaphore system calls allow processes to synchronize execution by doing a set of operations atomically on a set of semaphores. Basically semaphores provide another way for processes lock resources. However, process waiting on a semaphore, that is being used, will sleep until the resources are relinquished. The following semaphore system calls are blocked inside a jail: man:semget[2], man:semctl[2] and man:semop[2]."
            ],
            "previous_source": "",
            "target": [
                "Semaphore system calls allow processes to synchronize execution by doing a set of operations atomically on a set of semaphores. Basically semaphores provide another way for processes lock resources. However, process waiting on a semaphore, that is being used, will sleep until the resources are relinquished. The following semaphore system calls are blocked inside a jail: man:semget[2], man:semctl[2] and man:semop[2]."
            ],
            "id_hash": -5073720372180771946,
            "content_hash": -5073720372180771946,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:357",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 67,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 60,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127742/?format=api",
            "priority": 100,
            "id": 1127742,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=3996863406809b96",
            "url": "https://translate-dev.freebsd.org/api/units/1127742/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.677919Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "[.filename]#/usr/src/sys/kern/sysv_sem.c#:"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#/usr/src/sys/kern/sysv_sem.c#:"
            ],
            "id_hash": -6837744181303682262,
            "content_hash": -6837744181303682262,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:359",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 68,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127744/?format=api",
            "priority": 100,
            "id": 1127744,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=211b73e520665b2a",
            "url": "https://translate-dev.freebsd.org/api/units/1127744/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.703017Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`semctl(semid, semnum, cmd, ...)`: `semctl` does the specified `cmd` on the semaphore queue indicated by `semid`."
            ],
            "previous_source": "",
            "target": [
                "`semctl(semid, semnum, cmd, ...)`: `semctl` does the specified `cmd` on the semaphore queue indicated by `semid`."
            ],
            "id_hash": -5731268266615678321,
            "content_hash": -5731268266615678321,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:361",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 69,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127746/?format=api",
            "priority": 100,
            "id": 1127746,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=307671e087e75a8f",
            "url": "https://translate-dev.freebsd.org/api/units/1127746/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.727857Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`semget(key, nsems, flag)`: `semget` creates an array of semaphores, corresponding to `key`."
            ],
            "previous_source": "",
            "target": [
                "`semget(key, nsems, flag)`: `semget` creates an array of semaphores, corresponding to `key`."
            ],
            "id_hash": -2003990664852974168,
            "content_hash": -2003990664852974168,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:362",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 70,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127748/?format=api",
            "priority": 100,
            "id": 1127748,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=6430651ba03d55a8",
            "url": "https://translate-dev.freebsd.org/api/units/1127748/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.783782Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`semop(semid, array, nops)`: `semop` performs a group of operations indicated by `array`, to the set of semaphores identified by `semid`."
            ],
            "previous_source": "",
            "target": [
                "`semop(semid, array, nops)`: `semop` performs a group of operations indicated by `array`, to the set of semaphores identified by `semid`."
            ],
            "id_hash": 5989834617644839845,
            "content_hash": 5989834617644839845,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:365",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 72,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 20,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127752/?format=api",
            "priority": 100,
            "id": 1127752,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=d3202ad9680ef3a5",
            "url": "https://translate-dev.freebsd.org/api/units/1127752/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.828189Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "System V IPC allows for processes to share memory. Processes can communicate directly with each other by sharing parts of their virtual address space and then reading and writing data stored in the shared memory. These system calls are blocked within a jailed environment: man:shmdt[2], man:shmat[2], man:shmctl[2] and man:shmget[2]."
            ],
            "previous_source": "",
            "target": [
                "System V IPC allows for processes to share memory. Processes can communicate directly with each other by sharing parts of their virtual address space and then reading and writing data stored in the shared memory. These system calls are blocked within a jailed environment: man:shmdt[2], man:shmat[2], man:shmctl[2] and man:shmget[2]."
            ],
            "id_hash": 1534099203506055106,
            "content_hash": 1534099203506055106,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:367",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 73,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 49,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127754/?format=api",
            "priority": 100,
            "id": 1127754,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=954a3718fb3027c2",
            "url": "https://translate-dev.freebsd.org/api/units/1127754/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.884039Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "[.filename]#/usr/src/sys/kern/sysv_shm.c#:"
            ],
            "previous_source": "",
            "target": [
                "[.filename]#/usr/src/sys/kern/sysv_shm.c#:"
            ],
            "id_hash": 2708720254190416677,
            "content_hash": 2708720254190416677,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:369",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 74,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127756/?format=api",
            "priority": 100,
            "id": 1127756,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=a5974eb842ecf325",
            "url": "https://translate-dev.freebsd.org/api/units/1127756/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.905212Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`shmctl(shmid, cmd, buf)`: `shmctl` does various control operations on the shared memory region identified by `shmid`."
            ],
            "previous_source": "",
            "target": [
                "`shmctl(shmid, cmd, buf)`: `shmctl` does various control operations on the shared memory region identified by `shmid`."
            ],
            "id_hash": 5592195854022675881,
            "content_hash": 5592195854022675881,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:371",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 75,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127758/?format=api",
            "priority": 100,
            "id": 1127758,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=cd9b7880216f0da9",
            "url": "https://translate-dev.freebsd.org/api/units/1127758/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.925885Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`shmget(key, size, flag)`: `shmget` accesses or creates a shared memory region of `size` bytes."
            ],
            "previous_source": "",
            "target": [
                "`shmget(key, size, flag)`: `shmget` accesses or creates a shared memory region of `size` bytes."
            ],
            "id_hash": -8174633782604894272,
            "content_hash": -8174633782604894272,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:372",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 76,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 14,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127760/?format=api",
            "priority": 100,
            "id": 1127760,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=0e8ddde2c2ed6fc0",
            "url": "https://translate-dev.freebsd.org/api/units/1127760/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:05.976975Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`shmat(shmid, addr, flag)`: `shmat` attaches a shared memory region identified by `shmid` to the address space of a process."
            ],
            "previous_source": "",
            "target": [
                "`shmat(shmid, addr, flag)`: `shmat` attaches a shared memory region identified by `shmid` to the address space of a process."
            ],
            "id_hash": 7747777264409683954,
            "content_hash": 7747777264409683954,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:373",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 77,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 19,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127762/?format=api",
            "priority": 100,
            "id": 1127762,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=eb85a25f5bfca7f2",
            "url": "https://translate-dev.freebsd.org/api/units/1127762/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.000091Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`shmdt(addr)`: `shmdt` detaches the shared memory region previously attached at `addr`."
            ],
            "previous_source": "",
            "target": [
                "`shmdt(addr)`: `shmdt` detaches the shared memory region previously attached at `addr`."
            ],
            "id_hash": -1278840738368715386,
            "content_hash": -1278840738368715386,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:374",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 78,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 11,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127764/?format=api",
            "priority": 100,
            "id": 1127764,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=6e40a51fc13c0586",
            "url": "https://translate-dev.freebsd.org/api/units/1127764/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.021973Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Sockets"
            ],
            "previous_source": "",
            "target": [
                "Sockets"
            ],
            "id_hash": -3489371552239677111,
            "content_hash": -3489371552239677111,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:375",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 79,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127766/?format=api",
            "priority": 100,
            "id": 1127766,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=4f93430f8b669149",
            "url": "https://translate-dev.freebsd.org/api/units/1127766/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.080137Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Jail treats the man:socket[2] system call and related lower-level socket functions in a special manner. In order to determine whether a certain socket is allowed to be created, it first checks to see if the sysctl `security.jail.socket_unixiproute_only` is set. If set, sockets are only allowed to be created if the family specified is either `PF_LOCAL`, `PF_INET` or `PF_ROUTE`. Otherwise, it returns an error."
            ],
            "previous_source": "",
            "target": [
                "Jail treats the man:socket[2] system call and related lower-level socket functions in a special manner. In order to determine whether a certain socket is allowed to be created, it first checks to see if the sysctl `security.jail.socket_unixiproute_only` is set. If set, sockets are only allowed to be created if the family specified is either `PF_LOCAL`, `PF_INET` or `PF_ROUTE`. Otherwise, it returns an error."
            ],
            "id_hash": -4732418115050913858,
            "content_hash": -4732418115050913858,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:378",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 80,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 63,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127768/?format=api",
            "priority": 100,
            "id": 1127768,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=3e5312cc3bc43fbe",
            "url": "https://translate-dev.freebsd.org/api/units/1127768/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.114339Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "/usr/src/sys/kern/uipc_socket.c:\nint\nsocreate(int dom, struct socket **aso, int type, int proto,\n    struct ucred *cred, struct thread *td)\n{\n    struct protosw *prp;\n...\n    if (jailed(cred) && jail_socket_unixiproute_only &&\n        prp->pr_domain->dom_family != PF_LOCAL &&\n        prp->pr_domain->dom_family != PF_INET &&\n        prp->pr_domain->dom_family != PF_ROUTE) {\n        return (EPROTONOSUPPORT);\n    }\n...\n}\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/src/sys/kern/uipc_socket.c:\nint\nsocreate(int dom, struct socket **aso, int type, int proto,\n    struct ucred *cred, struct thread *td)\n{\n    struct protosw *prp;\n...\n    if (jailed(cred) && jail_socket_unixiproute_only &&\n        prp->pr_domain->dom_family != PF_LOCAL &&\n        prp->pr_domain->dom_family != PF_INET &&\n        prp->pr_domain->dom_family != PF_ROUTE) {\n        return (EPROTONOSUPPORT);\n    }\n...\n}\n"
            ],
            "id_hash": -3637621164897524774,
            "content_hash": -3637621164897524774,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:396",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 81,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 44,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127770/?format=api",
            "priority": 100,
            "id": 1127770,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=4d8492d2ced723da",
            "url": "https://translate-dev.freebsd.org/api/units/1127770/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.138725Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Berkeley Packet Filter"
            ],
            "previous_source": "",
            "target": [
                "Berkeley Packet Filter"
            ],
            "id_hash": 2187853083053207604,
            "content_hash": 2187853083053207604,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:398",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 82,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127772/?format=api",
            "priority": 100,
            "id": 1127772,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=9e5cd0c98c213034",
            "url": "https://translate-dev.freebsd.org/api/units/1127772/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.207154Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "The Berkeley Packet Filter provides a raw interface to data link layers in a protocol independent fashion. BPF is now controlled by the man:devfs[8] whether it can be used in a jailed environment."
            ],
            "previous_source": "",
            "target": [
                "The Berkeley Packet Filter provides a raw interface to data link layers in a protocol independent fashion. BPF is now controlled by the man:devfs[8] whether it can be used in a jailed environment."
            ],
            "id_hash": -6220800416275322453,
            "content_hash": -6220800416275322453,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:401",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 83,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 33,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127774/?format=api",
            "priority": 100,
            "id": 1127774,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=29ab46fb094ea9ab",
            "url": "https://translate-dev.freebsd.org/api/units/1127774/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.231960Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Protocols"
            ],
            "previous_source": "",
            "target": [
                "Protocols"
            ],
            "id_hash": 3330477790358382675,
            "content_hash": 3330477790358382675,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:402",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 84,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127776/?format=api",
            "priority": 100,
            "id": 1127776,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=ae383be79aa3a853",
            "url": "https://translate-dev.freebsd.org/api/units/1127776/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.278516Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "There are certain protocols which are very common, such as TCP, UDP, IP and ICMP. IP and ICMP are on the same level: the network layer 2. There are certain precautions which are taken in order to prevent a jailed process from binding a protocol to a certain address only if the `nam` parameter is set. `nam` is a pointer to a `sockaddr` structure, which describes the address on which to bind the service. A more exact definition is that `sockaddr` \"may be used as a template for referring to the identifying tag and length of each address\". In the function `in_pcbbind_setup()`, `sin` is a pointer to a `sockaddr_in` structure, which contains the port, address, length and domain family of the socket which is to be bound. Basically, this disallows any processes from jail to be able to specify the address that does not belong to the jail in which the calling process exists."
            ],
            "previous_source": "",
            "target": [
                "There are certain protocols which are very common, such as TCP, UDP, IP and ICMP. IP and ICMP are on the same level: the network layer 2. There are certain precautions which are taken in order to prevent a jailed process from binding a protocol to a certain address only if the `nam` parameter is set. `nam` is a pointer to a `sockaddr` structure, which describes the address on which to bind the service. A more exact definition is that `sockaddr` \"may be used as a template for referring to the identifying tag and length of each address\". In the function `in_pcbbind_setup()`, `sin` is a pointer to a `sockaddr_in` structure, which contains the port, address, length and domain family of the socket which is to be bound. Basically, this disallows any processes from jail to be able to specify the address that does not belong to the jail in which the calling process exists."
            ],
            "id_hash": 8016322601427626415,
            "content_hash": 8016322601427626415,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:405",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 85,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 154,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127778/?format=api",
            "priority": 100,
            "id": 1127778,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=ef3fb2ef070769af",
            "url": "https://translate-dev.freebsd.org/api/units/1127778/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.304536Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "/usr/src/sys/netinet/in_pcb.c:\nint\nin_pcbbind_setup(struct inpcb *inp, struct sockaddr *nam, in_addr_t *laddrp,\n    u_short *lportp, struct ucred *cred)\n{\n    ...\n    struct sockaddr_in *sin;\n    ...\n    if (nam) {\n        sin = (struct sockaddr_in *)nam;\n        ...\n        if (sin->sin_addr.s_addr != INADDR_ANY)\n            if (prison_ip(cred, 0, &sin->sin_addr.s_addr))\n                return(EINVAL);\n        ...\n        if (lport) {\n            ...\n            if (prison && prison_ip(cred, 0, &sin->sin_addr.s_addr))\n                return (EADDRNOTAVAIL);\n            ...\n        }\n    }\n    if (lport == 0) {\n        ...\n        if (laddr.s_addr != INADDR_ANY)\n            if (prison_ip(cred, 0, &laddr.s_addr))\n                return (EINVAL);\n        ...\n    }\n...\n    if (prison_ip(cred, 0, &laddr.s_addr))\n        return (EINVAL);\n...\n}\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/src/sys/netinet/in_pcb.c:\nint\nin_pcbbind_setup(struct inpcb *inp, struct sockaddr *nam, in_addr_t *laddrp,\n    u_short *lportp, struct ucred *cred)\n{\n    ...\n    struct sockaddr_in *sin;\n    ...\n    if (nam) {\n        sin = (struct sockaddr_in *)nam;\n        ...\n        if (sin->sin_addr.s_addr != INADDR_ANY)\n            if (prison_ip(cred, 0, &sin->sin_addr.s_addr))\n                return(EINVAL);\n        ...\n        if (lport) {\n            ...\n            if (prison && prison_ip(cred, 0, &sin->sin_addr.s_addr))\n                return (EADDRNOTAVAIL);\n            ...\n        }\n    }\n    if (lport == 0) {\n        ...\n        if (laddr.s_addr != INADDR_ANY)\n            if (prison_ip(cred, 0, &laddr.s_addr))\n                return (EINVAL);\n        ...\n    }\n...\n    if (prison_ip(cred, 0, &laddr.s_addr))\n        return (EINVAL);\n...\n}\n"
            ],
            "id_hash": -8935586237356513445,
            "content_hash": -8935586237356513445,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:442",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 86,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 82,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127780/?format=api",
            "priority": 100,
            "id": 1127780,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=03fe6ba8ee7ee75b",
            "url": "https://translate-dev.freebsd.org/api/units/1127780/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.330294Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "You might be wondering what function `prison_ip()` does. `prison_ip()` is given three arguments, a pointer to the credential(represented by `cred`), any flags, and an IP address. It returns 1 if the IP address does NOT belong to the jail or 0 otherwise. As you can see from the code, if it is indeed an IP address not belonging to the jail, the protocol is not allowed to bind to that address."
            ],
            "previous_source": "",
            "target": [
                "You might be wondering what function `prison_ip()` does. `prison_ip()` is given three arguments, a pointer to the credential(represented by `cred`), any flags, and an IP address. It returns 1 if the IP address does NOT belong to the jail or 0 otherwise. As you can see from the code, if it is indeed an IP address not belonging to the jail, the protocol is not allowed to bind to that address."
            ],
            "id_hash": 4275660772017737782,
            "content_hash": 4275660772017737782,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:445",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 87,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 71,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127782/?format=api",
            "priority": 100,
            "id": 1127782,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=bb5632d198309036",
            "url": "https://translate-dev.freebsd.org/api/units/1127782/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.388120Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "/usr/src/sys/kern/kern_jail.c:\nint\nprison_ip(struct ucred *cred, int flag, u_int32_t *ip)\n{\n    u_int32_t tmp;\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/src/sys/kern/kern_jail.c:\nint\nprison_ip(struct ucred *cred, int flag, u_int32_t *ip)\n{\n    u_int32_t tmp;\n"
            ],
            "id_hash": -4016682008452420395,
            "content_hash": -4016682008452420395,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:453",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 88,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127784/?format=api",
            "priority": 100,
            "id": 1127784,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=4841e0fe9e7dacd5",
            "url": "https://translate-dev.freebsd.org/api/units/1127784/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.417428Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "    if (!jailed(cred))\n        return (0);\n    if (flag)\n        tmp = *ip;\n    else\n        tmp = ntohl(*ip);\n    if (tmp == INADDR_ANY) {\n        if (flag)\n            *ip = cred->cr_prison->pr_ip;\n        else\n            *ip = htonl(cred->cr_prison->pr_ip);\n        return (0);\n    }\n    if (tmp == INADDR_LOOPBACK) {\n        if (flag)\n            *ip = cred->cr_prison->pr_ip;\n        else\n            *ip = htonl(cred->cr_prison->pr_ip);\n        return (0);\n    }\n    if (cred->cr_prison->pr_ip != tmp)\n        return (1);\n    return (0);\n}\n"
            ],
            "previous_source": "",
            "target": [
                "    if (!jailed(cred))\n        return (0);\n    if (flag)\n        tmp = *ip;\n    else\n        tmp = ntohl(*ip);\n    if (tmp == INADDR_ANY) {\n        if (flag)\n            *ip = cred->cr_prison->pr_ip;\n        else\n            *ip = htonl(cred->cr_prison->pr_ip);\n        return (0);\n    }\n    if (tmp == INADDR_LOOPBACK) {\n        if (flag)\n            *ip = cred->cr_prison->pr_ip;\n        else\n            *ip = htonl(cred->cr_prison->pr_ip);\n        return (0);\n    }\n    if (cred->cr_prison->pr_ip != tmp)\n        return (1);\n    return (0);\n}\n"
            ],
            "id_hash": -5757070790944240220,
            "content_hash": -5757070790944240220,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:478",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 89,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 56,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127786/?format=api",
            "priority": 100,
            "id": 1127786,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=301ac69e2efdcda4",
            "url": "https://translate-dev.freebsd.org/api/units/1127786/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.476588Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Filesystem"
            ],
            "previous_source": "",
            "target": [
                "Filesystem"
            ],
            "id_hash": -7615409116142431035,
            "content_hash": -7615409116142431035,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:480",
            "context": "",
            "note": "type: Title ===",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 90,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127788/?format=api",
            "priority": 100,
            "id": 1127788,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=1650a1c1cd0f14c5",
            "url": "https://translate-dev.freebsd.org/api/units/1127788/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.505369Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Even `root` users within the jail are not allowed to unset or modify any file flags, such as immutable, append-only, and undeleteable flags, if the securelevel is greater than 0."
            ],
            "previous_source": "",
            "target": [
                "Even `root` users within the jail are not allowed to unset or modify any file flags, such as immutable, append-only, and undeleteable flags, if the securelevel is greater than 0."
            ],
            "id_hash": 1910680242308531344,
            "content_hash": 1910680242308531344,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:483",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 91,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 30,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127790/?format=api",
            "priority": 100,
            "id": 1127790,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=9a84198ea2284490",
            "url": "https://translate-dev.freebsd.org/api/units/1127790/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.540949Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "/usr/src/sys/ufs/ufs/ufs_vnops.c:\nstatic int\nufs_setattr(ap)\n    ...\n{\n    ...\n        if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS, 0)) {\n            if (ip->i_flags\n                & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) {\n                    error = securelevel_gt(cred, 0);\n                    if (error)\n                        return (error);\n            }\n            ...\n        }\n}\n/usr/src/sys/kern/kern_priv.c\nint\npriv_check_cred(struct ucred *cred, int priv, int flags)\n{\n    ...\n    error = prison_priv_check(cred, priv);\n    if (error)\n        return (error);\n    ...\n}\n/usr/src/sys/kern/kern_jail.c\nint\nprison_priv_check(struct ucred *cred, int priv)\n{\n    ...\n    switch (priv) {\n    ...\n    case PRIV_VFS_SYSFLAGS:\n        if (jail_chflags_allowed)\n            return (0);\n        else\n            return (EPERM);\n    ...\n    }\n    ...\n}\n"
            ],
            "previous_source": "",
            "target": [
                "/usr/src/sys/ufs/ufs/ufs_vnops.c:\nstatic int\nufs_setattr(ap)\n    ...\n{\n    ...\n        if (!priv_check_cred(cred, PRIV_VFS_SYSFLAGS, 0)) {\n            if (ip->i_flags\n                & (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) {\n                    error = securelevel_gt(cred, 0);\n                    if (error)\n                        return (error);\n            }\n            ...\n        }\n}\n/usr/src/sys/kern/kern_priv.c\nint\npriv_check_cred(struct ucred *cred, int priv, int flags)\n{\n    ...\n    error = prison_priv_check(cred, priv);\n    if (error)\n        return (error);\n    ...\n}\n/usr/src/sys/kern/kern_jail.c\nint\nprison_priv_check(struct ucred *cred, int priv)\n{\n    ...\n    switch (priv) {\n    ...\n    case PRIV_VFS_SYSFLAGS:\n        if (jail_chflags_allowed)\n            return (0);\n        else\n            return (EPERM);\n    ...\n    }\n    ...\n}\n"
            ],
            "id_hash": -5355022326809956027,
            "content_hash": -5355022326809956027,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:528",
            "context": "",
            "note": "type: delimited block . 4",
            "flags": "no-wrap",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 92,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 80,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1127792/?format=api",
            "priority": 100,
            "id": 1127792,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=35af2390de34f145",
            "url": "https://translate-dev.freebsd.org/api/units/1127792/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-05-23T13:14:06.592959Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "`key and flag take on the same meaning as they do in msgget.`"
            ],
            "previous_source": "",
            "target": [
                "`key and flag take on the same meaning as they do in msgget.`"
            ],
            "id_hash": -4215462488937116304,
            "content_hash": -4215462488937116304,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:364",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 71,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 13,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1203084/?format=api",
            "priority": 100,
            "id": 1203084,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=457fab3366eb4d70",
            "url": "https://translate-dev.freebsd.org/api/units/1203084/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-06-08T12:04:10.852659Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/documentation/booksarch-handbookjail_index/en/?format=api",
            "source": [
                "Jail is becoming the new security model. People are running potentially vulnerable servers such as Apache, BIND, and sendmail within jails, so that if an attacker gains `root` within the jail, it is only an annoyance, and not a devastation. This article mainly focuses on the internals (source code) of jail. For information on how to set up a jail see the extref:{handbook}[handbook entry on jails, jails]."
            ],
            "previous_source": "",
            "target": [
                "Jail is becoming the new security model. People are running potentially vulnerable servers such as Apache, BIND, and sendmail within jails, so that if an attacker gains `root` within the jail, it is only an annoyance, and not a devastation. This article mainly focuses on the internals (source code) of jail. For information on how to set up a jail see the extref:{handbook}[handbook entry on jails, jails]."
            ],
            "id_hash": 7891161371276801963,
            "content_hash": 7891161371276801963,
            "location": "documentation/content/en/books/arch-handbook/jail/_index.adoc:53",
            "context": "",
            "note": "type: Plain text",
            "flags": "",
            "labels": [],
            "state": 100,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 4,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 67,
            "source_unit": "https://translate-dev.freebsd.org/api/units/1254566/?format=api",
            "priority": 100,
            "id": 1254566,
            "web_url": "https://translate-dev.freebsd.org/translate/documentation/booksarch-handbookjail_index/en/?checksum=ed830975403cf7ab",
            "url": "https://translate-dev.freebsd.org/api/units/1254566/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2021-11-05T02:20:13.278059Z"
        }
    ]
}